2011-10-20 8 views
1

ここで私は2つのフィールドにDisplayOrder = 0を持っているので、orderbyはうんざりしていて正しく注文していません。 orderbyを使用してこのコレクションを注文するにはどうすればよいですか?Linq OrderBy - 重複値について

答えて

5

ここでの問題は、OrderByがコレクションを変更しないで、代わりに正しい順序で新しいIEnumerable(Of T)インスタンスを作成することです。結果はm_listOfsAllFieldsの値で保存する必要があります。

m_ListOfsAllFields = m_ListOfsAllFields.OrderBy(Function(x) x.DisplayOrder) 

あなただけの直接Sortメソッドを使用する必要がありますけれども、これはList(Of T)のインスタンスである場合。 2つのオブジェクトが1 OrderByで使用されるプロパティに同じ値を持つことができますし、さらに差別化したい場合は

m_ListOfsAllFields.Sort(Function (l, r) l.DisplayOrder.CompareTo(r.DisplayOrder)) 
2

ThenByを追加します。

Dim results = sequence.OrderBy(yourFunction).ThenBy(anotherFunction) 
関連する問題