如何检查空之前,我在linq使用
本文关键字:我在 linq 使用 何检查 检查 | 更新日期: 2023-09-27 17:49:45
我有一个对象列表,其中包含另一个对象。
List<MyClass> myClass = new List<MyClass>();
我想这样做一些linq
myClass.Where(x => x.MyOtherObject.Name = "Name").ToList();
有时候"MyOtherObject"是空的。我如何检查这个?
很简单,只需添加一个AND
子句来检查它是否为null:
myClass.Where(x => x.MyOtherObject != null && x.MyOtherObject.Name = "Name").ToList();
从c# 6开始,您还可以使用空条件运算符?.
:
myClass.Where(x => x.MyOtherObject?.Name == "Name").ToList();
如果MyOtherObject
为空,则本质上将Name
属性解析为空,这将导致与"Name"
的比较失败。
在线试试
你可以让你的谓词检查为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();