Trier les ressources par son nom
Contents
[
Hide
Show
]Tri des ressources
Lorsque vous travaillez avec un projet utilisant Aspose.Tasks, les ressources du projet peuvent être triées par l’un des champs. Cet article montre comment implémenter l’interface icomparable pour trier les ressources par leur nom. Pour ce faire, définissez tout d’abord une classe qui implémente l’interface icomparable comme indiqué ci-dessous. Ensuite, traversez les ressources du projet et triez-les par leur nom.
Implémentation de l’interface icomparable
1int32_t SortResourcesByName::RscNameComparer::Compare(System::SharedPtr<Resource> const &x, System::SharedPtr<Resource> const &y) ASPOSE_CONST
2{
3 if (System::String::IsNullOrEmpty(x->Get<System::String>(Rsc::Name())))
4 {
5 return 1;
6 }
7 if (System::String::IsNullOrEmpty(y->Get<System::String>(Rsc::Name())))
8 {
9 return -1;
10 }
11 return x->Get<System::String>(Rsc::Name()).CompareTo(y->Get<System::String>(Rsc::Name()));
12}
Sorting Resources by Name
1System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"project-sort.mpp");
2
3System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Resource>>> resources = project->get_Resources()->ToList();
4resources->Sort(System::MakeObject<SortResourcesByName::RscNameComparer>());
5
6
7{
8 auto rsc_enumerator = (resources)->GetEnumerator();
9 decltype(rsc_enumerator->get_Current()) rsc;
10 while (rsc_enumerator->MoveNext() && (rsc = rsc_enumerator->get_Current(), true))
11 {
12 System::Console::WriteLine(rsc);
13 }
14}