0

Name、ID、および ParentID の 3 つのプロパティを持つクラスがあります。

私のデータ:

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

リストにすべてがあり、OrderBy またはおそらく Sort メソッドを使用しようとしていました。どちらが良いかわかりません。

イベントがリストの次の項目として子を持つように、リスト内のデータを並べ替える必要があります。これに関するヘルプをいただければ幸いです。ちなみに、私はこれを VB で行っています。ありがとう!!

4

1 に答える 1

1

このようにリストを並べ替えることができます

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

説明: ここではラムダ式を使用しています。関数の一種のインライン宣言と考えることができます。、またはをCompareTo返します。負の数は より小さいことを意味し、両方が等しく、より大きいことを意味します。最初の比較に 2 を掛けると、その符号が 2 番目の比較よりも優先されます。2 番目は、最初のものが を返す場合にのみ効果があります。-10+1xy0+1xy0

SortLINQ よりもリスト メソッドを使用する利点は、リストがその場で並べ替えられることです。LINQ では、新しいリストを作成する必要があります。

于 2012-10-07T00:33:44.080 に答える