通过linq从数据列表中的列中查找csv数据

时间:2015-03-16 20:07:01

标签: linq

我的表中的列存储了一个csv项目列表。在C#中我有一个项目列表,我想在该列上执行linq查询,返回列表中包含任何项目的所有行。

表定义为

Name|Tags

带有

的示例数据
Joe | football,soccer,basketball
Mike | hockey,soccer
Steve | basketball,baseball

因此,如果我的C#列表包含足球和篮球,我会找回Joe和Steve,因为他们的标签列表中都有1个。

注意,我正在使用表格的实体框架。

2 个答案:

答案 0 :(得分:1)

您必须将实体数据带入内存:

var result = players.ToList()
                    .Where(item => item.Tags.Split(',').Any(x => x.Contains("basketball") || x.Contains("baseball"));

应该给你2个结果。

更新:提供体育列表

List<string> sports = new List<string>
        {
            "baseball",
            "basketball",
            "football"
        };

var result = players.ToList()
                    .Where(item => item.Tags.Split(',').Any(sports.Contains));

答案 1 :(得分:0)

说,list是你的C#列表。 csvTable就是你的桌子。

var data = from csvItem in csvTable
            from tag in csvItem.Tags.split(',')
            where list.contains(tag)
            select csvItem