2011-09-30 60 views
2

如何搜索在數據庫中通過linq逗號分隔的值。我的場景是用戶可以從列表框中選擇多個值,然後在數據庫的逗號分隔字段中搜索那些項目。 我選擇兩個項目,因此該值將是2,3和數據庫字段具有值如何在linq中逗號分隔的字段之間進行搜索

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只

回答

3

對於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))); 
+0

string.split有什麼問題? –

+0

@RitchMelton,閱讀CSV規範。例如,'','或者換行。它僅適用於簡單的CSV文件。 –

+1

磷蝦Polishxhuk - 正確,它是一個簡單的工具,當事情很簡單時。 –

相關問題