LINQ Or运算符

时间:2011-01-27 07:35:25

标签: linq

LINQ中是否有OR运算符?

示例:

(controller.Equals("firm").Equals("service").Equals("training"))

我将如何制作它以匹配'坚定'或'服务'或'培训'? 感谢

3 个答案:

答案 0 :(得分:9)

执行所需操作的最简单方法可能是使用“允许”字词集合Contains

HashSet<string> words = new HashSet<string> { "firm", "service", "training" };

var query = from controller in foo.Controllers
            where words.Contains(controller)
            select controller;

或者你可以使用:

controller == "firm" || controller == "service" || controller == "training"

在查询中。

如果这没有帮助,请给我们更多的背景 - 你只给了我们一个非编译表达式,而不是清楚地知道查询是什么或它的意图(事实上它是否是在LINQ to Objects,LINQ to SQL或其他方面)。

答案 1 :(得分:3)

使用Contains()可以达到同样的效果。

(new[] { "firm", "service", "training" }.Contains(controller))

答案 2 :(得分:2)

如果要动态构建LINQ查询,可以查看PredicateBuilder