Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Сортируем?

21.11.17 12:51
Сортируем?
 
Murr патриот
Murr

Сортируем?


Что-то у меня не получается отсортировать список проектов.


Дано: TSore : SortedSet<TProject>, который должен содержать упорядоченный список проектов.


using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;

namespace Data.CCScript.Comparer
{
internal class TProjectOrderComparer : IComparer<TProject>
{
const int EARLY = 1;
const int EQUAL = 0;
const int LATE = -1;

// Projects should be ordered as following:
// in order in which it should be build.
// if a list of project references contain reference to the project
// project in the reference list sould be build earlier
int IComparer<TProject>.Compare(TProject a, TProject b)
{
if (b.Guid == a.Guid)
{
return EQUAL; // The same project
}
if (b.ProjectReferences.Contains(a))
{
return LATE; // 'b' going down
}

return EARLY;
}
}

public class TStore : SortedSet<TProject>
{
public TStore() : base(new TProjectOrderComparer())
{
}
}

public class TProject
{
public TProject()
{
ProjectReferences = new Collection<TProject>();
}

public Guid Guid { get; set; }

public ICollection<TProject> ProjectReferences { get; internal set; }
}

}

Может Я снова чего-то не понимаю, но конечный результат у меня не соответствует заданным критериям.


В аттаче - результат "сортировки".

 

Перейти на