我有 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/