在lambda表达式中的TimeSpan

时间:2009-11-03 22:33:15

标签: c# lambda

我想获得lambda函数来查询最后一分钟提交的项目。如何指定?

var items= Items.Where(i=>DateTime.Now.Subtract(i.Date)...)

4 个答案:

答案 0 :(得分:8)

选择

var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalMinutes < 1)

var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60)

答案 1 :(得分:6)

如果每个项目都有Date属性,您可以执行以下操作:

DateTime startDate = DateTime.Now - new TimeSpan(0,1,0);
var items = Items.Where( i => i.Date >= startDate );

您可以将数学直接放入Where语句中,但会在每个项目上重新计算,因此我更愿意将开始时间保留在语句之外。

答案 2 :(得分:5)

怎么样:

DateTime cutoffPoint = DateTime.Now.AddMinutes(-1);
var items = Items.Where(i => (i.Date >= cutoffPoint));

答案 3 :(得分:2)

var items = Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60);

根据列表中包含的项目数量,您可能希望将DateTime.Now保存到变量,因此它在所有比较中都是相同的。