我可以将这个C#代码转换成一些Linq代码吗?

时间:2011-09-15 00:53:53

标签: c# .net linq

我有以下string array,并希望将内容转换为linq Where子句,如下所示。

我有......

var words[] = new string [] { "aaa", "bbb", "ccc", "ddd" };

并希望....

.Where(x => x.Word == "aaa" && x.Word == "bbb" && 
            x.Word == "ccc" && x.Word == "ddd")

干杯:)

更新:为什么&&而不是||

这实际上是针对RavenDb而且它足够聪明,可以将linq转换为Lucene查询,其中包含AND ...

所以我真的需要它&&

更新2:更加明确我为什么要使用&&而不是||

RavenDB中的Linq提供程序,当被告知将linq翻译为lucene时,会执行以下操作。

.Where(x => x.Word == "aaa" && x.Word == "bbb")

将其翻译为

Query:aaa AND Query:bbb

所以请,我真的很感激使用||的任何帮助而不是建议。这不是linq to objectslinq to ef等等。

2 个答案:

答案 0 :(得分:3)

.Where(x => words.Contains(x.Word))

UPD :这对问题的初始修订完全有效

答案 1 :(得分:2)

如果您想使用&&,那么您要求满足所有条件。您可以尝试All运算符:

.Where(item => words.All(word => word == item));

这似乎非常违反直觉,但值得一试!