当Linq查询返回空值时,如何返回null?

时间:2018-08-28 04:32:20

标签: c# linq nullreferenceexception

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

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.

3 个答案:

答案 0 :(得分:5)

使用?。和?[] null-conditional运算符。在执行成员访问(?。)或索引(?[])操作之前,它将测试左侧操作数的值为null。如果左侧操作数的计算结果为null,则返回null。

resources/views/backpack/crud/inc/datatables_logic.blade.php

答案 1 :(得分:2)

您可以使用以下代码

var result = GetList().SingleOrDefault(x => x.Key == "MyKey");
if(result != null)
{
  //Add your logic
}

答案 2 :(得分:1)

在LINQ中处理Null的更安全方法。

na.rm=TRUE