我的表中的列存储了一个csv项目列表。在C#中我有一个项目列表,我想在该列上执行linq查询,返回列表中包含任何项目的所有行。
表定义为
Name|Tags
带有
的示例数据Joe | football,soccer,basketball
Mike | hockey,soccer
Steve | basketball,baseball
因此,如果我的C#列表包含足球和篮球,我会找回Joe和Steve,因为他们的标签列表中都有1个。
注意,我正在使用表格的实体框架。
答案 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