0

我有一个具有 3 个属性的类:名称、ID 和 ParentID。

我的数据:

        Name       ID     ParentID
        Event A    1      1
        Event B    2      1
        Event C    3      1
        Event D    4      2

我将所有内容都放在 List 中,并尝试使用 OrderBy 或 Sort 方法。不确定哪个会更好。

我需要对列表中的数据进行排序,以便事件将其子项作为列表中的下一项。对此的任何帮助将不胜感激,顺便说一句,我在 VB 中这样做。谢谢!!

4

1 回答 1

1

您可以像这样对列表进行排序

list.Sort(Function(x, y) 2 * x.ParentID.CompareTo(y.ParentID) + _
                         x.ChildID.CompareTo(y.ChildID))

说明:我在这里使用 lambda 表达式。您可以将其视为一种函数的内联声明。CompareTo返回-1,0+1. 负数表示x小于y0两者相等且+1均值x大于y。通过将第一个比较乘以 2,其符号优先于第二个比较。第二个只有一个效果,如果第一个返回0

与 LINQ相比,使用列表Sort方法的优点是列表是就地排序的。使用 LINQ,您必须创建一个新列表。

于 2012-10-07T00:33:44.080 回答