Usinq Linq根据逗号分隔值获取行

时间:2014-08-29 21:51:15

标签: c# linq

我的专栏中有逗号分隔的数据col1,我有一个字符串数组

IEnumerable<string> year = {"1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000"}

我试过以下

searchfrom = searchfrom.Where(x => years.Contains(x.col1.Replace(',', ' '))).ToList();

searchfrom = searchfrom.Where(x => years.Contains(x.col1)).ToList();

我想要那个匹配任何&#34;年&#34;进入&#34; col1&#34;

1 个答案:

答案 0 :(得分:3)

要优化此类查询,您应首先将years集合转换为哈希集。

var years = new HashSet<string>(new [] { "1990", "1991", ... });

Where子句中,您需要拆分可以使用x的每条记录x.Split(',')的内容。然后,您需要检查years集合中是否包含这些子部分。

var result = searchfrom.Where(x => 
    x.Split(',').Any(years.Contains)
).ToList();