您的更新问题在电话号码方面并不完全清楚,但我怀疑您需要以下内容:
var query = from category in list group category by category.Name into grouped select new { Name = grouped.Key, SumA = grouped.Sum(x => x.CountA), SumB = grouped.Sum(x => x.CountB), Phone = grouped.Last().Phone };
更改grouped.Last()
到grouped.First()
会更有效率,顺便说一句.
以这种方式评估多个聚合通常不是非常有效.由我自己和Marc Gravell开发的Push LINQ项目使其效率更高,但代价是不那么容易使用.如果您需要处理大量数据,可能需要查看它.
您的更新问题在电话号码方面并不完全清楚,但我怀疑您需要以下内容:
var query = from category in list group category by category.Name into grouped select new { Name = grouped.Key, SumA = grouped.Sum(x => x.CountA), SumB = grouped.Sum(x => x.CountB), Phone = grouped.Last().Phone };
更改grouped.Last()
到grouped.First()
会更有效率,顺便说一句.
以这种方式评估多个聚合通常不是非常有效.由我自己和Marc Gravell开发的Push LINQ项目使其效率更高,但代价是不那么容易使用.如果您需要处理大量数据,可能需要查看它.