c# - 使用 LINQ 确定序列不包含任何元素

标签 c# .net linq

<分区>

Possible Duplicate:
LINQ: Max or Default?

我有一些 LINQ 来过滤 DateTime 变量。

List<DateTime> lst1 = new List<DateTime>();

 //.... add DataTime here

var d = lst1.Where(q => q <= DateTime.Now).Max();

如果我没有匹配的项目,则会发生异常。

我需要得到空的 d 或至少 null 并且我根本不需要这里的异常。

我该如何解决?

谢谢!

最佳答案

尝试

var d = lst1.Where(q => q <= DateTime.Now).DefaultIfEmpty().Max();

如果没有匹配项,您的结果现在将包含 DateTime.MinValue

关于c# - 使用 LINQ 确定序列不包含任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11884177/

相关文章:

c# - LINQ to count 在 int 数组中继续重复项(int)?

c# - Mono.Cecil TypeReference 类型?

asp.net - 为什么选择 MVC 而不是优秀的旧式 ASP.NET?还是不明白为什么我应该走这条路?

c# - ASP.NET 动态生成的事件代码未运行

.net - Windows CNG 自定义 key 存储提供程序

c# - 为什么在使用 .NET Newtonsoft.Json 组件反序列化一些有效的 json 时,我的 POCO 中的所有集合都是空的

c# - 从父列表创建子列表

.net - 使用 Linq 查找列表中按属性 A 排序的第一个对象,然后是属性 B

c# - 在 Entity Framework 6 中使用 Func 属性选择器

c# - 如何使用 TypeMock Isolator 伪造数据上下文方法