Tareas de clasificación por nombre

Cuando se trabaja con datos del proyecto utilizando Aspose.Tasks para .NET, a menudo es necesario organizar tareas en un orden específico para análisis o visualización. Un enfoque común es clasificar las tareas alfabéticamente por sus nombres. Esta guía explica cómo hacerlo implementando un comparador personalizado.

Implementación de un comparador personalizado

Para ordenar las tareas por nombre, defina una clase que implementa la interfaz iComParer <Kark>. Este comparador verifica los nombres nulos o vacíos y luego aplica una comparación de cadenas:

 1private class TaskNameComparer : IComparer<Task>
 2{
 3    public int Compare(Task x, Task y)
 4    {
 5        if (string.IsNullOrEmpty(x.Get(Tsk.Name)))
 6            return 1;
 7        if (string.IsNullOrEmpty(y.Get(Tsk.Name)))
 8            return -1;
 9        return x.Get(Tsk.Name).CompareTo(y.Get(Tsk.Name));
10    }
11}

This logic ensures tasks without names are placed at the end of the list.

Collecting and Sorting Tasks

Load a project and collect its tasks using ChildTasksCollector. Then apply the custom comparer to sort them:

 1Project project = new Project("New Project.mpp");
 2ChildTasksCollector coll = new ChildTasksCollector();
 3TaskUtils.Apply(project.RootTask, coll, 0);
 4List<Task> tasks = coll.Tasks;
 5
 6tasks.Sort(new TaskNameComparer());
 7
 8foreach (Task task in tasks)
 9{
10    Console.WriteLine(task);
11}

El ChildTasksCollector ayuda a simplificar la jerarquía de tareas en una lista, lo que facilita su uso. Tras ordenarlas, las tareas aparecerán en orden alfabético según sus nombres.

Resumen

Ordenar las tareas por nombre simplifica la generación de informes, el filtrado y la representación de la interfaz de usuario. Con un sencillo comparador personalizado y las utilidades de recopilación de tareas de Aspose.Tasks, este proceso se integra fácilmente en los flujos de trabajo .NET.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.