数组用于LINQ中IN CLAUSE的字符串

时间:2016-08-19 15:32:16

标签: c# linq

我想在linq查询中使用字符串数组,如下面的IN CLAUSE

    string[] strArray = {"A", "B", "C", "D"};
    foreach (var item in SomeCollection.Where(x => x.column.Contains(seriesIIType)))
    {

    }

但我收到了以下错误。

  

错误1'string.Contains(string)'的最佳重载方法匹配   有一些无效的参数错误2参数1:无法转换   'string []'到'string'

3 个答案:

答案 0 :(得分:3)

在我看来,你想要这样做:

SomeCollection.Where(x => strArray.Any(y => x.column.Contains(y)));

但我不知道x.column.Contains是如何运作的,因为我不知道x.column是什么。

答案 1 :(得分:2)

调用阵列上的Contains方法。

string[] strArray = {"A", "B", "C", "D"};
SomeCollection.Where(x => strArray.Contains(x.column))

这将返回那些具有列属性值的项是数组中的其中一项。

假设column属性与数组(string

的类型相同

答案 2 :(得分:0)

我认为应该是相反的方式:

Worksheet

供参考:Linq to Entities - SQL "IN" clause

这是非常直观的,不是吗?但这就是它在Linq世界中的运作方式。