【问题标题】:how to search between comma separated field in linq如何在linq中的逗号分隔字段之间搜索
【发布时间】:2011-09-30 10:32:09
【问题描述】:

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

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    对于 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)));
    

    【讨论】:

    • @RitchMelton,阅读 CSV 规范。例如,, 或换行符。它仅适用于简单的 CSV 文件。
    • Krill Polishxhuk - 对,当事情很简单时,它是一个简单的工具。
    猜你喜欢
    • 2016-04-24
    • 2013-06-21
    • 2014-10-19
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    相关资源
    最近更新 更多