class Category
{
public string Name { get; set; }
public int Count { get; set;}
}
Name Count
AA 2
BB 3
AA 4
Run Code Online (Sandbox Code Playgroud)
我有一个 IEnumerable<Category>
并希望获得具有唯一名称和多个条目总和的类别列表
产量
Name Count
AA 6
BB 3
Run Code Online (Sandbox Code Playgroud)
更新
class Category
{
public string Name { get; set; }
public int CountA { get; set;}
public int CountB { get; set;}
public string Phone { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我如何总结两列.并且电话列可以是最后一行或任何行
您的更新问题在电话号码方面并不完全清楚,但我怀疑您需要以下内容:
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 };
Run Code Online (Sandbox Code Playgroud)
更改grouped.Last()到grouped.First()会更有效率,顺便说一句.
以这种方式评估多个聚合通常不是非常有效.由我自己和Marc Gravell开发的Push LINQ项目使其效率更高,但代价是不那么容易使用.如果您需要处理大量数据,可能需要查看它.
var foo = new List<Category>() {
new Category() { Name = "AA", Count = 2},
new Category() { Name = "BB", Count = 3},
new Category() { Name = "AA", Count = 4}
};
var bar = foo.GroupBy(c => c.Name).Select(g => new Category(){ Name = g.Key, Count = g.Sum(c => c.Count) });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3406 次 |
| 最近记录: |