繁体   English   中英

如何对包含属性的类的List集合进行排序?

[英]How to sort a List collection of classes with properties in them?

我的集合中有一个类列表

List<MyClass> test = new List<MyClass>();

在我的课程中,我只有一些属性

public string id {get; set;}
public DateTime date {get; set;}

现在我通过从2个不同的数据库表中获取一些查询来创建这些类。 然后我从数据库表中获取这2个结果并使用foreach循环我创建一个新的MyClass对象并将其粘贴在我的“test”集合中。

现在,将所有这些类放入列表集合中。 我想对它们进行排序,并通过“date”属性对类进行排序。

我怎么能这样做? 当我从数据库中获取它们时,我无法正确订购,因为我从2个不同的数据库表中获取它们并且单独订购它们只会为每个部分订购它,但是表1可能有12/12/2009因此可能表二。 所以他们需要一起订购。

那么我可以使用linq或其他东西来订购它们吗?

谢谢

怎么样:

list.Sort((x,y) => DateTime.Compare(x.date, y.date));

对现有列表进行排序,或者:

var sorted = list.OrderBy(x=>x.date).ToList();

这会创建第二个列表。

如果要对它们进行排序,可以使用List<T>.Sort

test.Sort( (l,r) => l.date.CompareTo(r.date) );

如果要将它们排序为新的结果集,LINQ非常好:

var sortedResults = from mc in test
                    order by mc.date
                    select mc;

在列表中放入课程后,列表就完成了:

List<MyClass> testList = new List<MyClass>();
// populate the list...

var orderedList = testList.OrderBy( x => x.date ).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM