linq 如何按多属性汇总列表

z9ju0rcb  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(88)

我有一个列表,如:

List<ClassName> item= new List<ClassName>();
list.Add(new ClassName()
{
    Typ= 1,
    Name= A,
    Amount = 5
});
list.Add(new ClassName()
{
    Typ= 2,
    Name= B,
    Amount = 3
});
list.Add(new ClassName()
{
    Typ= 1,
    Name= A,
    Amount = 3
});
list.Add(new ClassName()
{
    Typ= 1,
    Name= C,
    Amount = 3
});

我想用相同的类型和名称来总结它,或者用除了数量之外的更多相同的属性来总结它。我该怎么做?

exdqitrt

exdqitrt1#

你可以通过LINQ中的“Group By”来实现。

var summarizedList = list.GroupBy(item => new { item.Typ, item.Name }) 
            .Select(group => new ClassName
            {
                Typ = group.Key.Typ,
                Name = group.Key.Name,
                Amount = group.Sum(item => item.Amount)
            })
            .ToList();

相关问题