如何在LINQ中检查PredictionTableList空值,将空结果返回为"-"?
解决方案
针对你的问题,需要先处理PredictionTableList为null的情况,同时将最终的空结果替换为"-",这里提供两种常用写法:
简洁链式写法
利用C#的null条件运算符(?.)和空合并运算符(??),一行代码完成所有判断:
DisplayTimeStamp = PredictionTableList?.Where(x => x.ContextTimestamp != null) .Select(x => x.ContextTimestamp) .FirstOrDefault() ?? "-";
PredictionTableList?.:当列表为null时,后续链式调用直接返回null,避免空引用异常?? "-":将最终的null结果(无论是列表本身为null,还是没有找到符合条件的ContextTimestamp)替换为"-"
直观分支写法
如果需要更清晰的逻辑拆分,可以用条件判断语句:
if (PredictionTableList == null || !PredictionTableList.Any(x => x.ContextTimestamp != null)) { DisplayTimeStamp = "-"; } else { DisplayTimeStamp = PredictionTableList.Where(x => x.ContextTimestamp != null) .Select(x => x.ContextTimestamp) .FirstOrDefault(); }
- 先判断列表是否为null,或者列表中没有非null的
ContextTimestamp,满足任一条件就返回"-" - 否则执行原逻辑获取第一条符合条件的时间戳
内容的提问来源于stack exchange,提问作者wanderingdev
相关产品推荐
相关产品推荐

