对对象列表进行排序

时间:2011-08-04 07:31:41

标签: c# asp.net

我在List()中保留了一个对象列表。我想通过对象的属性对此列表进行排序。

例如,假设该对象是Messsage,并且消息包含:content,date,header,...

我想按消息的日期对列表进行排序。

是否有任何List方法或任何其他方法可以轻松实现这一点?

感谢。

3 个答案:

答案 0 :(得分:2)

是的,请使用sort。如果您的列表是l:

l.Sort((a,b) => {
    if (a == b) return 0;
    if (a == null) return -1;
    if (b == null) return 1;

    return a.Date.CompareTo(b.Date)
});

这假设date属性是实现CompareTo()的类型。

答案 1 :(得分:0)

您可以实施IComparer<YourObject>并使用该比较器进行排序

答案 2 :(得分:0)

如果您使用泛型(即使用List),您可以使用Sort方法MSDN

请参阅我的答案this question,以创建一个可让您执行的扩展方法

myList.SortBy(x=>x.Date)