我想获得lambda函数,它将查询在最后一分钟提交的项目。如何指定这个?lambda表达式中的TimeSpan
var items= Items.Where(i=>DateTime.Now.Subtract(i.Date)...)
我想获得lambda函数,它将查询在最后一分钟提交的项目。如何指定这个?lambda表达式中的TimeSpan
var items= Items.Where(i=>DateTime.Now.Subtract(i.Date)...)
如果每个项目有一个日期属性,你可以这样做:
DateTime startDate = DateTime.Now - new TimeSpan(0,1,0);
var items = Items.Where(i => i.Date >= startDate);
你可以把数学直接进入Where语句,但它会得到推荐对每个项目都进行了调整,所以我宁愿将开始时间保留在声明之外。
任你选
var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalMinutes < 1)
或
var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60)
我像第二个一样。它看起来与=>和<=对称。 – 2009-11-04 00:46:34
如何:
DateTime cutoffPoint = DateTime.Now.AddMinutes(-1);
var items = Items.Where(i => (i.Date >= cutoffPoint));
你可能是指'DateTime.Now.AddMinutes(-1);'? – 2009-11-03 22:45:57
是的,当然,谢谢你为我纠正它。 – 2009-11-03 23:29:10
var items = Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60);
根据您的名单多少项目包含你可能想DateTime.Now保存到一个变量,所以它在所有的比较一样..
我认为你的意思是'.TotalSeconds'而不是'.Seconds' - 总是<60. – configurator 2009-11-03 22:47:58
是的,我确实(更新了) - 谢谢! – andyp 2009-11-03 22:48:50
这是我犯的错误 – zsharp 2009-11-03 23:05:54
我用这个原因描述 – zsharp 2009-11-04 02:35:18