C# 从具有日期列的记录列表中获取最小日期
我有一个从DB返回行列表的查询:C# 从具有日期列的记录列表中获取最小日期,c#,linq,C#,Linq,我有一个从DB返回行列表的查询: var records = (from t in this.Context.MyTable where SomeConditionsAreTrue select t).ToList(); 此表的其中一列是OriginalAppDate,它是可为空的DateTime列 我想找到原始应用日期中填充的最早日期,该日期不为空 我写的是,我的数据库还没有准备好,还有一些代码问题,所以我无法运行它进行测试,所以我想看看并获得反馈,如果这听起来正确的话 var tempDa
var records = (from t in this.Context.MyTable where SomeConditionsAreTrue select t).ToList();
此表的其中一列是OriginalAppDate
,它是可为空的DateTime
列
我想找到原始应用日期中填充的最早日期,该日期不为空
我写的是,我的数据库还没有准备好,还有一些代码问题,所以我无法运行它进行测试,所以我想看看并获得反馈,如果这听起来正确的话
var tempDateTime = records.Where(t => t.OriginalAppDate.HasValue).Min(t => t.OriginalAppDate.Value);
当我在下面说这个的时候,编译器说这个表达式总是假的那么我怎么知道它是否返回了值呢?
if(tempDateTime == null)
{
//...
}
如果要选择整行,则只需按日期排序并选择第一行即可。由于您正在筛选不可为空的行,因此可以保证选择这些行:
var minRecord = records.Where(t => t.OriginalAppDate.HasValue).
OrderBy(t => t.OriginalAppDate).FirstOrDefault();
哈哈,是的!我没想过。好的,还有一个问题:如何确保date不为NULL?因为您正在筛选我看到的不可为NULL的行,所以您可以保证从中挑出这些行,因为这里有HasValue,如果它不返回任何内容,我可以检查minRecord==NULL