提问人:Kiran Shahi 提问时间:8/28/2018 更新时间:8/28/2018 访问量:3871
当Linq查询返回空值时如何返回null?
How to return null when the Linq query returns empty value?
问:
我有以下代码从列表中获取值。
GetList().SingleOrDefault(x => x.Key == "MyKey").MyValue;
当列表中有带值的属性时,它可以正常工作,但是当列表中没有带值的属性时,它会抛出一个 .我怎样才能返回null值而不是异常。Key
MyKey
Key
MyKey
NullReferenceException
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
答:
7赞
Access Denied
8/28/2018
#1
用?。和?[] null 条件运算符。它在执行成员访问 (?.) 或索引 (?[]) 操作之前测试左侧操作数的值是否为 null;如果左侧操作数的计算结果为 null,则返回 null。
GetList().SingleOrDefault(x => x.Key == "MyKey")?.MyValue;
2赞
Prem
8/28/2018
#2
您可以使用以下代码
var result = GetList().SingleOrDefault(x => x.Key == "MyKey");
if(result != null)
{
//Add your logic
}
1赞
Kalpesh Rajai
8/28/2018
#3
在 LINQ 中处理 Null 的更安全方法。
GetList().Where(x => x.Key == "MyKey").Select(S=>S.MyValue).SingleOrDefault();
评论
0赞
Kiran Shahi
8/28/2018
嗨,Kalpesh,您能否解释一下此代码如何处理 null 异常
评论