繁体   English   中英

LINQ中的条件WHERE

[英]Conditional WHERE in LINQ

您好基于搜索条件建立LINQ语句的任何建议?

我将传递一个'SearchCriteria'类的实例,其中所有参数都可以为空。

然后我想

if (sc.a != null)
    // add to where

if (sc.b != null)
    // add to where

关键是这些是OR而不是AND。

有小费吗?

而对于奖励积分,我想在int上使用'contains'? 但我只能得到等于或等于。

尝试:

.Where(x =>
    (x.a != null ? x.a == a : false) &&
    (x.b != null ? x.b == b : false));

要么

.Where(x =>
    (x.a != null && x.a == a) ||
    (x.b != null && x.b == b));

也:

.Where(x => new int[] { 1, 2, 3 }.Contains(x.i));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM