假设我有一张桌子叫

我可以通过两个查询来实现:

int total = m.Items.Sum(p=>p.Total)
int done = m.Items.Sum(p=>p.Done)

但我想在一个查询中这样做:

var x = from p in m.Items select new { Sum(p.Total), Sum(p.Done)};

肯定有一种方法可以从LINQ语法调用聚合函数...?

推荐答案

这将会起到作用:

from p in m.Items
group p by 1 into g
select new
{
    SumTotal = g.Sum(x => x.Total), 
    SumDone = g.Sum(x => x.Done) 
};

.net相关问答推荐

IIS 发布 ASP.NET Core 应用程序而不关闭 IIS 网站

MongoDB GridFs with C#,如何存储图片等文件?

Silverlight 与 Flex

在 WPF 窗口中获取当前聚焦的元素/控件

C# 中基于接口编程的运算符重载

InternalsVisibleTo 属性不起作用

C# 相当于 Java 的 <?在泛型中扩展 Base>

参数命名:文件名还是文件名?

.NET 如何判断路径是否是文件而不是目录?

String.Format - 它是如何工作的以及如何实现自定义格式字符串

在生产环境中部署调试符号(pdb 文件)有什么风险?

如何正确和完全关闭/重置 TcpClient 连接?

静态方法继承的正确替代方法是什么?

C# (.NET) 设计缺陷

SqlBulkCopy 的推荐批量大小是多少?

如何向 C# Winforms 中的标签添加提示或工具提示?

功能说明

C# 应用程序中的全局键盘捕获

.NET 图形库?

判断任意字符串是否为有效文件名的最简单方法