我有这个Linq语句,如果property不是NULL,它会成功构建一个列表
results.AddRange(m_CTS.Entity.Where(x => x.Property.Contains(search)).ToList());
Run Code Online (Sandbox Code Playgroud)
但是,如果x.property为null然后它出错,那么我想尝试将其检查为null,如果它不为null,则继续构建列表.
我试过了,
results.AddRange(m_CTS.Entity.Where(x => x.Property == null ? "" : x.Property.Contains(search)).ToList());
Run Code Online (Sandbox Code Playgroud)
但这也是错误,我做错了什么?
提前致谢
你应该检查null这样:
x.Property != null && x.Property.Contains(search)
Run Code Online (Sandbox Code Playgroud)
Where期望一个返回a的语句bool,但是你的第一个表达式返回string而另一个表达式返回bool.因此它不能编译.
为什么究其原因&&是因为作品短路.如果x.Property != null演算值为假的第二个表达式将不会被evaluted,你不会得到例外.
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |