我有以下 LINQ 查询,它在 FirstOrDefault()
返回 null 时触发异常。理想情况下,我想避免空检查。有没有办法做到这一点?如果没有满足 FirstOrDefault()
调用的 CPOffsets
,我希望返回 0
。
double offset = OrderedOffsets.FirstOrDefault(o => o.OffsetDateTime > cpTime).CPOffset;
我能看到实现此目的的唯一方法如下:
CPOffset cpOffset = OrderedOffsets.FirstOrDefault(o => o.OffsetDateTime > cpTime);
double offset = cpOffset != null ? cpOffset.CPOffset : 0;
还有其他更简洁的方法吗?在 FirstOrDefault()
之后使用 Select()
无法编译,但我认为这里可能合适?
最佳答案
我认为这应该可行,我不在 VS 附近查看...
OrderedOffsets.Where(o => o.OffsetDateTime > cpTime).Select(x => x.CPOffset).FirstOrDefault();
关于c# - LINQ - FirstOrDefault() 然后 Select(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15536830/