Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List LINQ-字符串的一部分包含在元素列表中_List_Linq_Contains - Fatal编程技术网

List LINQ-字符串的一部分包含在元素列表中

List LINQ-字符串的一部分包含在元素列表中,list,linq,contains,List,Linq,Contains,我有一个数据库,其中一列可以包含用逗号分隔的值,如下所示: madrid, barcelona, paris rome paris amsterdam, madrid florence, tokyo paris, barcelona milan london, edinburgh .... 然后我有一个列表: var listTarget = new List<string>{"paris", "amsterdam", "rome"}; 有人可以帮我吗?您可以使用分隔符(在本例中

我有一个数据库,其中一列可以包含用逗号分隔的值,如下所示:

madrid, barcelona, paris
rome
paris
amsterdam, madrid
florence, tokyo
paris, barcelona
milan
london, edinburgh
....
然后我有一个列表:

var listTarget = new List<string>{"paris", "amsterdam", "rome"};

有人可以帮我吗?

您可以使用分隔符(在本例中为“,”)拆分并比较列表。比如说,

.Where(x=> x.City.Split(',').Any(c=> listTarget.Contains(c.Trim())));

请原谅我的vb.net linq,但您可以将其转换为C。我使用的是linq和正则表达式的组合,以获得准确的结果。请检查此代码

DT.AsEnumerable().Where(Function(n) system.Text.RegularExpressions.Regex.IsMatch((cstr(n("A"))),string.Join("|",List_of_strr) )).CopyToDataTable

我在这里也使用了数据表,因为我没有数据库。
cstr(n(“A”)
中的
“A”
是列名。

您可以分享您尝试的代码吗?我使用了这个WHERE子句,但我得到了错误:WHERE(A=>listTarget.Any(e=>A.city.Contains(e)))您得到了什么错误。我得到了这个错误:“除Contains运算符外,查询运算符的LINQ to SQL实现中不能使用本地序列。”@Alfra我已更新了答案。请验证
DT.AsEnumerable().Where(Function(n) system.Text.RegularExpressions.Regex.IsMatch((cstr(n("A"))),string.Join("|",List_of_strr) )).CopyToDataTable