我想获得lambda函数来查询最后一分钟提交的项目。如何指定?
var items= Items.Where(i=>DateTime.Now.Subtract(i.Date)...)
答案 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保存到变量,因此它在所有比较中都是相同的。