在linq中使用之前如何检查null?

cho*_*bo2 17 c# linq

我有一个对象列表,其中包含另一个对象.

List<MyClass> myClass = new List<MyClass>();
Run Code Online (Sandbox Code Playgroud)

我想这样做一些linq

myClass.Where(x => x.MyOtherObject.Name = "Name").ToList();
Run Code Online (Sandbox Code Playgroud)

事情有时候"MyOtherObject"为空.我该如何检查?

ale*_*exn 31

简单,只需添加一个AND子句来检查它是否为null:

myClass.Where(x => x.MyOtherObject != null && x.MyOtherObject.Name = "Name").ToList();
Run Code Online (Sandbox Code Playgroud)


Joh*_*ica 7

从 C# 6 开始,您还可以使用空条件运算符 ?.

myClass.Where(x => x.MyOtherObject?.Name == "Name").ToList();
Run Code Online (Sandbox Code Playgroud)

Name如果MyOtherObject为空,这将从本质上将属性解析为空,这将使与"Name"

网上试试