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.