首页新闻找找看学习计划

请问linq查询的时候条件为空(null)时为true怎么弄

0
悬赏园豆:10 [已解决问题] 解决于 2017-01-03 14:04

例如 list.where(c=>c.age>20&&c.Name.Contains(name)),当name为null或“”时 c.Name.Contains(name)都为true ,Contains这个方法name为“”时结果为true,但是name为null时抛异常

问题补充:

当要用guid查询时,我没设置id? 也就是id为空时必须用 Guid.Empty判断id为空,我需要整合一些方法,当id为null或 Guid.Empty时c.Id.Contains(id)为true

C_MZ的主页 C_MZ | 初学一级 | 园豆:193
提问于:2017-01-03 10:33
< >
分享
最佳答案
0

 list.where(c=>c.age>20&&c.Name.Contains(name??""))

有什么问题就解决什么问题.

把你想的写成代码就是了.

收获园豆:5
吴瑞祥 | 高人七级 |园豆:28770 | 2017-01-03 10:49

也是一种但是Guid.Empty没法,和楼下的方法结合用还是可以

C_MZ | 园豆:193 (初学一级) | 2017-01-03 14:04
其他回答(1)
0

上面回答的可以或者你写成list.where(c=>c.age>20&&(string.IsNullOrWhiteSpace(name)||c.Name.Contains(name)))

如果name是输入的,把空格也判断进去比较好

收获园豆:5
狂狗A地板 | 园豆:121 (初学一级) | 2017-01-03 12:54

可以 ,只是linq不能用IsNullOrWhiteSpace只能IsNullOrEmpty,谢了

支持(0) 反对(0) C_MZ | 园豆:193 (初学一级) | 2017-01-03 14:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册