c# - 在 LINQ 中返回 null 而不是默认值

标签 c# linq

我有 LINQ 查询,它必须检索一些 DateTime 值。有时我没有匹配项,我必须为该 DateTime 值返回 NULL 而不是 DateTime 的默认值。

我怎样才能避免这种情况并返回 NULL 而不是默认值?

我的 LINQ:

CreatedDate = ctaMatch.Select(d => d.CreatedDate).DefaultIfEmpty().FirstOrDefault()

在 DefaultIfEmpty 中,我只能放置 DateTime。

最佳答案

将其转换为 DateTime?,这将导致 DefaultIfEmpty 创建一个默认集合,如果集合为空,则包含 null 值。

CreatedDate = ctaMatch
    .Select(d => (DateTime?)d.CreatedDate)
    .DefaultIfEmpty()
    .FirstOrDefault()

PS:DefaultIfEmpty可以省略,因为它后面跟着FirstOrDefault

关于c# - 在 LINQ 中返回 null 而不是默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25539139/

相关文章:

c# - 使用 LINQ 选择枚举中所有标记的值

c# - 使用linq从基类列表中获取相同类型的继承类项

c# - 使用 Linq 按索引求和

c# - Linq 查询耗时过长

c# - 在 SelectMany LINQ 中使用索引

c# - 仅通过 GDI+ 和 DotNet 指定大小来创建 Dib

c# - 如何在wp7中保存透明背景的位图图片

c# - 奇怪的 WPF DataGrid 问题

c# - 使用通过 HTTPS 传输的 system.net.socket 检查接收到的数据

c# - 对列表中的多个项目使用 String.Join