在 linq 中使用之前如何检查 null ?
我有一个对象列表,其中包含另一个对象。
List<MyClass> myClass = new List<MyClass>();
我想做一些像这样的 linq
myClass.Where(x => x.MyOtherObject.Name = "Name").ToList();
事情有时“MyOtherObject”为空。我该如何检查这一点?
I have an list of objects that contains another object in it.
List<MyClass> myClass = new List<MyClass>();
I want to do some linq like this
myClass.Where(x => x.MyOtherObject.Name = "Name").ToList();
Thing is sometimes "MyOtherObject" is null. How do I check for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
很简单,只需添加一个
AND
子句来检查它是否不为空:Simple, just add an
AND
clause to check if it's not null:从 C# 6 开始,您还可以使用 null 条件运算符
?.
:如果
MyOtherObject
为 null,这实际上会将Name
属性解析为 null,这将导致失败与“名称”
进行比较。在线尝试
As of C# 6, you can also use a null conditional operator
?.
:This will essentially resolve the
Name
property to null ifMyOtherObject
is null, which will fail the comparison with"Name"
.Try it online
你可以让你的谓词检查为空...
You can just make your predicate check for null...
我会做这样的事情:
I would do something like this: