我一直在Google上搜索最近幾個小時,以找到解決我的問題,但即時通訊癱瘓。 我想知道是否有人可以幫我解決以下問題。C#Linq where子句.Contains(string [])
我有一個Linq查詢,查詢DataTable。我的String [] BodyTypes的PARAM保存字符串,如 「5,7,11」 或 「6,7,4」 或只是 「5,」
LINQ的我已經是:
var query2 = (from v in query.AsEnumerable()
where (from yy in BodyTypes
select yy).Contains(v.Header36.ToString())
select new
{
PartNumber = v.PartNumber,
Position = v.Position,
ImagePath = v.ImagePath,
Supplier = v.Supplier,
Price = v.Price,
RRP = v.RRP,
Stock = v.Stock,
BaseCat = v.BaseCat,
Description = v.Description,
Header36 = v.Header36,
GT_Id = v.GT_Id
});
v.Header36有不同的值分配給它每行,即「11,7,4,5」或「11,6,7」
我的問題是我如何使用Linq匹配,我想匹配Header36與使用通配符或類似語句在字符串[] BodyTypes數組中傳遞的所有內容。 我的問題是這個DataTable從第三方的webservice加載,所以沒有SQL後端可以在這裏使用。 任何建議將非常感激。
親切的問候 尼爾。
謝謝你們驚人的快速反應。我試圖實現第一個代碼示例,但我在string.Split(「,」,v.Header36)上得到語法錯誤(紅色下劃線),我還應該補充說,這是在一個複合控件內完成的,如果這使得任何區別。 – 2011-03-25 15:05:02
不要忘記調用.ToString()Header36 – GreyCloud 2011-03-25 15:07:59
嗯這行錯誤 - 讓頭= string.Split(',',v.Header36.ToString())與 - 最好的重載方法匹配的string.Split(params char [])有一些無效參數 – 2011-03-25 15:18:16