【发布时间】:2010-10-21 21:07:54
【问题描述】:
我有一个这样声明的通用列表:
List<Dictionary<string, int>> sales;
字符串是产品名称,int 是售出的单位数。我想按产品名称分组并汇总总销售额。这样我就可以看到每种产品的销量。
我将如何使用 linq 做到这一点?
谢谢!
【问题讨论】:
标签: linq
我有一个这样声明的通用列表:
List<Dictionary<string, int>> sales;
字符串是产品名称,int 是售出的单位数。我想按产品名称分组并汇总总销售额。这样我就可以看到每种产品的销量。
我将如何使用 linq 做到这一点?
谢谢!
【问题讨论】:
标签: linq
这将为您提供字典形式的结果,其中键是产品名称,值是售出的总数量。
var result =
sales.SelectMany(d => d) // Flatten the list of dictionaries
.GroupBy(kvp => kvp.Key, kvp => kvp.Value) // Group the products
.ToDictionary(g => g.Key, g => g.Sum()); // Sum each group
【讨论】:
using System.Linq;。您正在使用.NET 3.5,对吗?因为它不能在旧版本的 .NET 中工作...... LINQ 是在 .NET 3.5 中添加的。