gpt4 book ai didi

c# - 对如何在 LINQ 中分组很困惑,对 HAVING 更困惑

转载 作者:行者123 更新时间:2023-12-02 22:09:40 26 4
gpt4 key购买 nike

我是 Linq 的新手。我正在尝试转换这个简单的 SQL 查询,但找不到任何关于如何将 SQL 转换为 LINQ 的重要资源。我的 SQL 查询是:

SELECT SomeValue
FROM SomeTable
GROUP BY SomeValue
HAVING SUM (OtherValue) > 0;

我不太了解 LINQ,无法执行此操作。我在让 GROUP BY 工作时遇到了很多麻烦,我什至还没有尝试解决 HAVING SUM 问题。

我已经尝试了一些东西。这是最新的,尽管它仍然是错误的:

from entry in SomeTable
group entry by entry.SomeValue into grp
select grp.Select(x => x.SomeValue).toList();

任何帮助或资源都会很棒。

最佳答案

等效的 LINQ 语句如下所示:

SomeTable.GroupBy(x => x.SomeValue)
.Where(g => g.Sum(x => x.OtherValue) > 0)
.Select(g => g.Key);

它首先按SomeValue 分组。结果将是一个组列表。每个组依次包含具有相同 SomeValue 的所有行。
下一步创建一个过滤器 (Where)。此过滤器将仅返回该组中行的 OtherValue 总和大于零的那些组。
最后,它将从过滤的组中选择每个组的键。组的键是在 GroupBy 中指定的值。

关于c# - 对如何在 LINQ 中分组很困惑,对 HAVING 更困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534974/

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