Я пытаюсь найти то, что я делаю неправильно, в следующем коде, чтобы отсортировать список определенных элементов объекта.
Объект является сетевой группой, которая имеет UID (некоторый идентификатор) исписок членов (представлен в виде списка всех UID членов)
(циклы недействительны - A не может состоять из B, когда B состоит из A)
Например:
Group1 - UID: 1 UID членов: 2, 3.
Group2 - UID: 4 UID членов: 6.
Group3 - UID: 5 UID членов: 7.
Group4 - UID: 2 члена UID: 4.
Group5 - UID: 3 члена UID: 5.
(UID 7 и 4 не являются группами)
Это также порядок создания объектов и добавления их в список сетевых групп.
Так я реализовал 'CompareTo', где объект реализует IComparable -
public int CompareTo(NetworkObjectGroup other)
{
if(this.MembersByUid.Contains(other.UID))
{
return 1;
}
else if (other.MembersByUid.Contains(this.UID))
{
return -1;
}
else
{
return 0;
}
}
Я использую следующий вызов для сортировки списка -
this.MainWindow.DbObject.NetworkObjectGroups.Sort();
В конце вызова список не сортируется и остаетсяТо же самое ... Что я делаю не так?
После сортировки я добавляю вывод в таблицу данных и показываю в пользовательском интерфейсе приложения WPF, что каждая строка представляет один из объектов, это результат -
Я хочу, чтобы он сортировался по зависимостям, например:
Group2
Group3
Group4
Group5
Group1
Спасибо заранее.