我正在使用包含两个表格的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