在LINQ中与IN子句一起使用的字符串数组

本文关键字:字符串 数组 一起 LINQ 中与 IN 子句 | 更新日期: 2023-09-27 18:03:05

我想在linq查询中使用字符串数组与下面的in子句

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

但我得到低于错误。

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

在LINQ中与IN子句一起使用的字符串数组

在我看来你想这样做:

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

但是我不知道x.column.Contains是怎么工作的因为我不知道x.column是什么

在数组中调用Contains方法

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

这将返回那些列属性值为数组中任意一个的项。

假设column属性与您的数组(string)类型相同

我认为应该是另一种方式:

string[] seriesIIType = {"OC", "RH", "RC", "OA"};
foreach (var item in SomeCollection.Where(x => seriesIIType.Contains(x.Column)))
        {
        }
参考:Linq to Entities - SQL "IN"条款

很直观,不是吗?