首页 > 解决方案 > Linq查询返回空值时如何返回null?

问题描述

我有以下代码从列表中获取值。

GetList().SingleOrDefault(x => x.Key == "MyKey").MyValue;

当列表中存在Key具有值MyKey的属性时,它可以正常工作,但是当列表中没有Key具有值MyKey的属性时,它会抛出 NullReferenceException. 如何返回空值而不是异常。

System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.

标签: c#linqnullreferenceexception

解决方案


利用 ?。和 ?[] 空条件运算符。它在执行成员访问 (?.) 或索引 (?[]) 操作之前测试左侧操作数的值是否为 null;如果左侧操作数的计算结果为 null,则返回 null。

GetList().SingleOrDefault(x => x.Key == "MyKey")?.MyValue;

推荐阅读