我在一个表中有 3 个日期类型的列,我想使用 linq 从所有列中只获取一个最小日期。
表格:
收集分阶段处理
1/20/2017 2/19/2017 3/17/2016
2017/4/21 2014/6/18 2015/12/15
所需结果:6/18/2014
目前我正在使用以下代码:
var collectedDate = queryResults.Min(d => d.Collected);
var stagedDate = queryResults.Min(d => d.Staged);
var ProcessedDate = queryResults.Min(d => d.Processed);
然后比较这三个并将最小日期存储在另一个变量中。 我怎样才能以其他好的方式做到这一点?
最佳答案
当您使用数据库时,最好进行一次查询而不是三次查询:
var answer = (from item in queryResults
group item by 0 into sub
select new
{
min1 = sub.Min(x => x.Collected),
min2 = sub.Min(x => x.Staged),
min3 = sub.Min(x => x.Processed)
}).ToList().Select(x => new[] { x.min1, x.min2, x.min3 }.Min()).FirstOrDefault();
关于c# - 如何从linq中的多个日期列中获取最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43730811/