我试图在下面的代码中找到我做错的事情,以便对特定对象项列表进行排序。
对象是网络组 - 它有一个UID(一些id)和一个成员列表(表示为所有成员的列表UID')
(循环无效 - 当B组成A时,A不能包含B
例如:
Group1 - UID:1个成员UID' s:2,3。
Group2 - UID:4名成员UID' s。
Group3 - UID:5名成员UID' s。
Group4 - UID:2名成员UID' s。
Group5 - UID:3名成员UID' s。
(UID' 7不是小组)
这也是创建对象并将它们添加到网络组列表的顺序。
这就是我实施“比较”的方式。对象实现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应用UI中, 每行代表一个对象,这是结果 -
我希望它按依赖项排序,例如:
组2
第3组
组别4
组5
组别1
谢谢你的到来。