我有一个MyObject
类,其中包含CreationDate As Date
属性。
获取按CreationDate
List(Of MyObject)
排序的最佳方法是什么?
更快的方式和最高效的方式。
答案 0 :(得分:4)
使用LINQ你可以使用:
Dim sorted = unsorted.OrderBy(Function(x) x.CreationDate) _
.ToList()
编辑:如果您已经有List(Of T)
,则可以使用就地Sort
方法和自定义比较器。 可能更快。它可能不会。我怀疑它不太可能是重要的性能差异,这是你应该关注的。
根据经验,我建议:
答案 1 :(得分:3)
列表有一种排序方法。它的一个重载允许指定比较
unsorted.Sort(Function(x, y) x.CreationDate.CompareTo(y.CreationDate))
答案 2 :(得分:0)
您可以实施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>());