我有一個名爲對象的列表:由布爾關係按名稱排序然後按布爾關係分組? (.NET)
這class NamedObject {
public string name;
public int value;
public NamedObject(string name, int value) {
this.name = name;
this.value = value;
}
}
...
public static bool HasRelationship(NamedObject a, NamedObject b) {
return a.value == b.value;
}
...
var objs = new List<NamedObject>();
objs.Add(new NamedObject("D", 1));
objs.Add(new NamedObject("Z", 2));
objs.Add(new NamedObject("Y", 3));
objs.Add(new NamedObject("A", 2));
objs.Add(new NamedObject("C", 1));
objs.Add(new NamedObject("Z", 1));
的,我想按名稱排序,然後分排序。就本例而言,布爾關係爲a.value == b.value
。
輸出列表:
- A(2)
- Z(2)
- C(1)
- d(1)
- Z(1)
- Y(3)
所以按名稱排序,按布爾關係分組,按名稱排序子組。
編輯:
以上是實際排序的簡化,在我的申請的HasRelationship
函數確定兩個方向是否有對稱性。方向被命名,以便它們在編輯器界面中以邏輯順序出現。
這裏是一個可視化:
事實上,你的解決方案似乎確實提供了正確的輸出!我發佈了一個完整評論的答案,我希望能更好地理解我的問題。但是,由於您的解決方案有效並且更簡潔,因此請考慮接受:)乾杯! –