C#列表查询和分组

时间:2012-07-17 11:29:43

标签: c# asp.net

我有这个清单:

OrderId    ProductId    DateTime

1               1                10.01.2012
1               2                09.01.2012
2               1                11.01.2012
3               1                12.01.2012
3               2                13.01.2012

我想从中提取另一个只有ProductId==1且DateTime为10.01.2012的List。

即。每个OrderId只有productId==1

此外,我只想要该项目的最小日期时间版本。

因此,对于上面的列表,10.01.2012是productId == 1的最小dateTime。

结果表;

OrderId    ProductId    DateTime

1               1                10.01.2012

我该怎么做?

1 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案:

myList = myList.Where(x.ProductId == 1).OrderBy(x => x.DateTime);

这将按DateTime值排序您的新列表,其中productId等于1.如果您只想获得第一个,可以使用列表的.First()方法,例如:

myCustomType = myList.Where(x => x.ProductId == 1).OrderBy(x => x.DateTime).First();