我正在尝试创建一个LINQ语句,它将为我提供开始日期和结束日期之间的最大天数。
所以我有这个声明可以解决所有已解决的问题:
var issuesClosed = whseTasks.Where(t => t.CompDate != null);
从这个问题列表中,我想找到每个记录与给定issue.StartDate和issue.EndDate之间的最大天数,并选择具有最大天数的记录。
EX:
1 | issue.StartDate = 7/3/2014 | issue.EndDate = 7/5/2014 = 2天
2 | issue.StartDate = 7/1/2014 | issue.EndDate = 7/5/2014 = 4天
3 | issue.StartDate = 7/1/2014 | issue.EndDate = 7/6/2014 = 5天
我想选择记录3,因为它的天数最多。
答案 0 :(得分:3)
var issues = new[]
{
new Issue { StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(4) },
new Issue { StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(12) },
new Issue { StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(1) }
};
var theIssue =
issues.OrderBy(issue => (issue.StartDate - issue.EndDate).TotalDays)
.First();
答案 1 :(得分:1)
选择两个日期之间差异最大的记录应该完成工作
whseTasks.Where(t => t.CompDate != null)
.Max(x => x.EndDate - x.StartDate);