如何通过linq搜索数据库中以逗号分隔的值。我的场景是用户可以从列表框中选择多个值,然后在数据库中的逗号分隔字段中搜索这些项目。 我选择两个项目,因此值为2,3,数据库字段具有值
1,2,4,5
1,4,3,6
2,3,4,5
1,4
所选记录必须记录为1,因为它有2,记录没有2,因为它有3并且记录没有3,因为它有两个并且拒绝记录没有4。 我尝试的是
string Commodites = "2,3";
obj.Where(e => Commodites.Contains(e.Id)).Distinct()
但它只选择那些只有2,3值的记录
答案 0 :(得分:3)
对于CSV拆分,我建议您使用任何CSV解析器,而不是简单地使用string.Split
方法。
string[] input = { "1,2,4,5", "1,4,3,6", "2,3,4,5", "1,4" };
var result = input.Where(l => l.Split(',').Any(s => new[] { "2", "3" }.Contains(s)));