c# - 如何从linq中的多个日期列中获取最小值?

标签 c# entity-framework linq

我在一个表中有 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/

相关文章:

c# 将 .docx 文件加载到 richtextbox 中花费的时间太长

.net - 实现自定义 ValidationAttribute 时应该覆盖哪个 IsValid 方法

c# - Azure Active Directory创建多个租户

c# - 检测 CPU 对齐要求

c# - 如何知道 Entity Framework 中数据库的物理大小?

c# - 如何在不导致无限循环的情况下向 XML 文件添加数据

c# - 数组上的 LINQ 过滤器

C# - 在 LINQ 上比较没有时间的日期时间?

c# - 在 fragment 内调用 REST 服务并在回收 View 内填充数据

entity-framework - 指定的成员映射无效。在数据库中添加新列时 ADO.net Entity Framework 中的错误?