이름으로 작업을 정렬합니다

정렬 작업

Aspose.Tasks를 사용하여 프로젝트를 사용하는 동안 프로젝트의 작업은 모든 필드에 의해 정렬 될 수 있습니다. 이 기사에서는 ICompayable 인터페이스를 구현하여 작업을 이름별로 정렬하는 방법을 보여줍니다.

먼저, [Icompayable 인터페이스를 구현하는] 클래스를 정의하십시오 (1). 그런 다음 프로젝트의 작업을 가로 지르고 이름별로 분류.

icomparyable 인터페이스 구현

 1int32_t SortTasksByName::TaskNameComparer::Compare(System::SharedPtr<Task> const &x, System::SharedPtr<Task> const &y) ASPOSE_CONST
 2{
 3    if (System::String::IsNullOrEmpty(x->Get(Tsk::Name())))
 4    {
 5        return 1;
 6    }
 7    if (System::String::IsNullOrEmpty(y->Get(Tsk::Name())))
 8    {
 9        return -1;
10    }
11    return x->Get(Tsk::Name()).CompareTo(y->Get(Tsk::Name()));
12}

Sorting Tasks by Name

 1System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
 2System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"project-sort.mpp");
 3System::SharedPtr<ChildTasksCollector> coll = System::MakeObject<ChildTasksCollector>();
 4TaskUtils::Apply(project->get_RootTask(), coll, 0);
 5System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Task>>> tasks = coll->get_Tasks();
 6    
 7tasks->Sort(System::MakeObject<SortTasksByName::TaskNameComparer>());
 8    
 9    
10{
11    auto task_enumerator = (tasks)->GetEnumerator();
12    decltype(task_enumerator->get_Current()) task;
13    while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
14    {
15        System::Console::WriteLine(task);
16    }
17}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.