6

嗨,关于基于搜索条件构建 LINQ 语句的任何建议?

我将传入一个所有参数都可为空的“SearchCriteria”类的实例。

然后我想

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

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

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

有小费吗?

对于奖励积分,我想在 int 上使用“包含”?但我只能得到等于或不等于。

4

1 回答 1

6

尝试:

.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));
于 2012-09-09T08:43:47.210 回答