Aufgaben sortieren nach Namen

Bei der Arbeit mit Projektdaten unter Verwendung von Aspose.Tasks für .NET müssen häufig Aufgaben in einer bestimmten Reihenfolge für Analyse oder Anzeige organisiert werden. Ein gemeinsamer Ansatz ist die sortierende Aufgaben alphabetisch nach ihren Namen. In diesem Leitfaden wird erläutert, wie das geht, indem ein benutzerdefinierter Vergleich implementiert wird.

Implementierung eines benutzerdefinierten Vergleichs

Definieren Sie eine Klasse, die die “iComparer ` -Schinnee “implementiert, um Aufgaben nach Namen zu sortieren. Dieser vergleichende Überprüfungen über Null- oder Leerennamen und dann einen String -Vergleich angewendet:

 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}

Der „ChildTasksCollector“ vereinfacht die Aufgabenhierarchie in einer Liste und erleichtert so die Arbeit. Nach der Sortierung werden die Aufgaben alphabetisch nach Namen angezeigt.

Zusammenfassung

Das Sortieren von Aufgaben nach Namen vereinfacht die Berichterstellung, Filterung und UI-Darstellung. Mit einem einfachen benutzerdefinierten Vergleicher und den Aufgabensammlungs-Tools in Aspose.Tasks lässt sich dieser Prozess problemlos in .NET-Workflows integrieren.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.