如何在linq中的逗号分隔字段之间进行搜索

时间:2011-09-30 10:32:10

标签: c# linq

如何通过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值的记录

1 个答案:

答案 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)));