Linq:基于DateTime字段对集合中的项目进行排序

时间:2011-08-08 11:07:43

标签: c# linq

我在列表中有一组Task对象。

List<Tasks> tasks = getTasks(); //This populates tasks

每个任务项都有一个“dateCreated”字段,这是一个完全成熟的DateTime字段。

Public class Task
{
    DateTime dateCreated {get;set;}
    //other props
}

我的问题是,一旦我有一个任务列表,我如何根据这个dateCreated字段求助集合中的项目。

  1. 最好的情况是我可以使用现有的收藏品
  2. 如果无法做到这一点,那么使用Linq选择基于DateCreated的项目,并填充另一个集合。
  3. 提前致谢。

3 个答案:

答案 0 :(得分:3)

您可以实施IComparable<T>并使用List<T>.Sort()

或者你可以:

tasks.Sort(t => t.DateCreated);

http://msdn.microsoft.com/en-us/library/w56d4y5z.aspx

如果您不想这样做,请执行以下操作:

tasks = tasks.OrderBy(t => t.DateCreated).ToList();

答案 1 :(得分:1)

您无需实施IComparable<T>来对列表进行排序:

tasks.Sort((t1,t2) => t1.DateCreated.CompareTo(t2.DateCreated));

答案 2 :(得分:0)

最好的方法是

tasks = tasks.OrderBy(t => t.DateCreated.Ticks).ToList();

这样,列表将按日期和时间排序