2014-08-29 29 views
0

Usinq 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(); 

我想該行這是任何「年」配成「COL1」

+0

Linq-to-_What_?什麼是'searchfrom'?什麼是「年」?此外,該數組不是一個數組,不會編譯。 – 2014-08-29 21:55:19

+0

「searchfrom」是我的表格的結果/列表。 – ujjaval 2014-08-29 22:07:05

回答

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();