Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从具有日期列的记录列表中获取最小日期_C#_Linq - Fatal编程技术网

C# 从具有日期列的记录列表中获取最小日期

C# 从具有日期列的记录列表中获取最小日期,c#,linq,C#,Linq,我有一个从DB返回行列表的查询: var records = (from t in this.Context.MyTable where SomeConditionsAreTrue select t).ToList(); 此表的其中一列是OriginalAppDate,它是可为空的DateTime列 我想找到原始应用日期中填充的最早日期,该日期不为空 我写的是,我的数据库还没有准备好,还有一些代码问题,所以我无法运行它进行测试,所以我想看看并获得反馈,如果这听起来正确的话 var tempDa

我有一个从DB返回行列表的查询:

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