プロパティをMyObject
含むクラスがありますCreationDate As Date
。
並べ替えを取得するための最良の方法は何CreationDate
List(Of MyObject)
ですか?
より迅速な方法と最もパフォーマンスの高い方法。
LINQ を使用すると、次のように使用できます。
Dim sorted = unsorted.OrderBy(Function(x) x.CreationDate) _
.ToList()
編集: 既に持っている場合は、カスタム比較子List(Of T)
でインプレース メソッドを使用できます。Sort
その方が早いかもしれません。そうではないかもしれません。パフォーマンスに大きな違いがある可能性は低いと思いますが、これは気にする必要があります。
経験則として、次のことをお勧めします。
リストにはソート方法があります。1 つのオーバーロードで比較を指定できます
unsorted.Sort(Function(x, y) x.CreationDate.CompareTo(y.CreationDate))
インターフェイスを実装し、そのメソッドIComparer
を定義して、オブジェクトCompare
の日付を確認できます。MyObject
public class MyObjectComparer<T> : IComparer<T>
{
public int Compare(MyObject firstObject, MyObject secondObject)
{
return firstObject.CreationDate.Compare(secondObject.CreationDate);
}
}
注:私はあなたCreationDate
がタイプであると仮定しましDateTime
たが、必要に応じて比較機能を実装できます。
次に、Comparer に従ってリストを並べ替えるには、次のようにします。
myListObject.Sort(new MyObjectComparer<MyObject>());