我有一个MyObject
包含CreationDate As Date
属性的类。
获得排序依据的最佳方法是CreationDate
List(Of MyObject)
什么?
更快的方式和最高效的方式。
使用 LINQ,您可以使用:
Dim sorted = unsorted.OrderBy(Function(x) x.CreationDate) _
.ToList()
编辑:如果您已经有了一个List(Of T)
,您可以将就地Sort
方法与自定义比较器一起使用。那可能会更快。它可能不会。我怀疑这不太可能在性能上有显着差异,这是您应该关注的。
根据经验,我建议:
列表有一个排序方法。它的一个重载允许指定一个比较
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
,但您可以根据需要实现比较功能。
然后根据您的比较器对您的列表进行排序:
myListObject.Sort(new MyObjectComparer<MyObject>());