gpt4 book ai didi

c# - 如何使用 LINQ to DataSet 筛选集合

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:16 24 4
gpt4 key购买 nike

我正在使用一个包含两个表的 DataSet,我试图通过 LINQ 从中获取数据。

我正在努力弄清楚如何返回满足条件的记录的语法。

例子:

这是两个表:

FooBar Items

FooBar Data

此查询连接两个表(项目 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"]
};
}

这是从上述查询派生的集合。

FooBar Items joined with FooBar Data

问题:如何只退回 Foo 项目?

注意 Foo 项目如何在其第一行/记录中具有非空值,而 Bar 项目在第一行/记录中没有非空值。使用所有 Foo 项在 foo 列中至少有一个非空值并且 Bar 项在 foo 列中永远不会有非空值这一事实,我如何更新上述查询以便查询仅返回 Foo 项?同样,我如何更新查询以使其只返回 Bar 项目?

最佳答案

我并不完全清楚 Foo 与 Bar 的标准是什么,但这里有一些想法:

var foos1 = fooBars.Where(fb => fb.wat != "bar");
var foos2 = fooBars.Where(fb => fb.wat == "foo" || fb.wat == null);
var foos3 = fooBars.Where(fb => fb.wat == "foo" || fb.foo != null);
var bars = fooBars.Where(fb => fb.wat == "bar" || fb.foo != null);

关于c# - 如何使用 LINQ to DataSet 筛选集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com