Linq Intersect逗号分隔字符串与包含字符串的列表任何&所有

时间:2015-09-16 17:09:31

标签: c# regex linq

在我的数据库中有一个字段,它是由逗号分隔的一串ID。 (即" 5,8,9")用户将从创建所选ID列表的多下拉列表中进行选择。我想搜索用户生成的ID列表匹配的数据库(包括All& Any)。

我目前的尝试如下。

reports = reports.Where(r => r.ItemIds.Split(',').ToList().Intersect(ItemIdsList).Any());

然后......

reports = reports.Where(r => r.ItemIds.Split(',').ToList().Intersect(ItemIdsList).All());

1 个答案:

答案 0 :(得分:1)

如果所有值都不同,它将起作用,即ItemIds和ItemIdsList中没有重复项

reports = reports.Where(r => r.ItemIds.Split(',').ToList().Intersect(ItemIdsList).Count() > 0); // instead of .Any()  
reports = reports.Where(r => r.ItemIds.Split(',').ToList().Intersect(ItemIdsList).Count() == ItemIdsList.Count()); // instead of .All()