C# 在linq中使用之前如何检查null?
我有一个包含另一个对象的对象列表C# 在linq中使用之前如何检查null?,c#,linq,C#,Linq,我有一个包含另一个对象的对象列表 List<MyClass> myClass = new List<MyClass>(); 事情有时是“MyOtherObject”为空。如何检查此项?很简单,只需添加一个和子句来检查它是否为空: myClass.Where(x => x.MyOtherObject != null && x.MyOtherObject.Name = "Name").ToList(); 您只需检查谓词是否为null myClass.
List<MyClass> myClass = new List<MyClass>();
事情有时是“MyOtherObject”为空。如何检查此项?很简单,只需添加一个
和
子句来检查它是否为空:
myClass.Where(x => x.MyOtherObject != null && x.MyOtherObject.Name = "Name").ToList();
您只需检查谓词是否为null
myClass.Where(x => (x.MyOtherObject == null) ? false : x.MyOtherObject.Name == "Name").ToList();
我会这样做:
myClass.Where(x => x.MyOtherObject != null)
.Where(y => y.MyOtherObject.Name = "Name")
.ToList();
从C#6开始,您还可以使用?。
:
myClass.Where(x => x.MyOtherObject?.Name == "Name").ToList();
如果MyOtherObject
为null,这将基本上将Name
属性解析为null,这将导致与“Name”
的比较失败
你是说==“Name”
?
myClass.Where(x => x.MyOtherObject?.Name == "Name").ToList();