【发布时间】:2020-09-08 06:23:13
【问题描述】:
我目前正在开发一个 ASP.NET 应用程序,我需要根据从数据库接收到的数据显示几个图表。我将它们作为对象列表接收,例如:
{
{ name: "A", val: 20 },
{ name: "A", val: 10 },
{ name: "B", val: 6 },
{ name: "C", val: 1 },
{ name: "C", val: 20 }
}
我想改造这个列表,目标列表应该是这样的:
{ { name: "A", val: 30 } { name: "B", val: 6 }, { name: "C", val: 21 } }
我希望将所有名称为“A”的对象“合并”成一个对象,其中 val 现在是单个对象的所有值的总和。目前我正在使用一个 foror 循环和一个新的列表,我每次都循环来实现这一点,但我认为这是非常低效的。可能有一些 LINQ 选项可以做到这一点,但我没有找到任何东西。我该如何优化它?
提前致谢!
【问题讨论】:
-
这是 json ,你正在使用它吗?还是这些 C# 类您使用了错误的语法?
-
如果是后者,
List.GroupBy(x => x.name ).Select( x => new { name = x.Key, val = x.Sum()}); -
哦,是的,我用 JSON 写下来了,但它们确实是代码中的对象
-
这能回答你的问题吗? Linq: GroupBy, Sum and Count
标签: c# asp.net asp.net-mvc linq