我正在使用包含兩個表格的DataSet
,我試圖通過LINQ獲取數據。如何使用LINQ來過濾集合到數據集
我很努力弄清楚如何返回符合條件的記錄的語法。
實施例:
下面是兩個表:
此查詢連接兩個表(商品Z將被過濾掉)
private void ParseFooBar()
{
....
var fooBars = from item in fooBarItems
join data in fooBarData on item["FooBar_Id"] equals data["FooBar_Id"]
where (new[] {"A","B","C"}).Contains(item["id"])
select new
{
id = item["id"],
description = item["description"],
wat = data["wat"],
foo = data["foo"]
};
}
這是從上述查詢派生的集合。
問:我怎麼只返回美孚項目?
請注意,Foo項目在第一行中記錄的是非空值,而Bar項目在第一行/記錄中沒有非空值。使用這樣一個事實,即所有Foo項目在foo列中至少有一個非空值,並且Bar項目在foo列中永遠不會有非空值,那麼如何更新上述查詢以便該查詢僅返回Foo項目?同樣,我如何更新查詢,以便它只返回條款項目?
我喜歡你的想法與附加的lambda - 它看起來像會起作用,但它不。更新查詢的結果返回與原始文件不同的集合。奇怪。 – Jed 2012-02-10 23:18:19
@Jed:哦,發了一個錯字。應該是'f.foo!= null',而不是'「」'。現在修復。 – 2012-02-10 23:21:35