如何按多个属性汇总列表

huangapple go评论124阅读模式
英文:

How summarize list by mutiple property

问题

我想要通过相同的 "Typ" 和 "Name" 来汇总它,或者甚至可以通过除了 "Amount" 之外的更多相同属性来汇总。我该如何做?

英文:

i have a list like:

  1. List<ClassName> item= new List<ClassName>();
  2. list.Add(new ClassName()
  3. {
  4. Typ= 1,
  5. Name= A,
  6. Amount = 5
  7. });
  8. list.Add(new ClassName()
  9. {
  10. Typ= 2,
  11. Name= B,
  12. Amount = 3
  13. });
  14. list.Add(new ClassName()
  15. {
  16. Typ= 1,
  17. Name= A,
  18. Amount = 3
  19. });
  20. list.Add(new ClassName()
  21. {
  22. Typ= 1,
  23. Name= C,
  24. Amount = 3
  25. });

I want to summarize it by the same Typ and Name, or maybe by even more same properties besides Amount. How can i do it?

答案1

得分: 1

你可以使用LINQ中的'Group By'来实现它。

  1. var summarizedList = list.GroupBy(item => new { item.Typ, item.Name })
  2. .Select(group => new ClassName
  3. {
  4. Typ = group.Key.Typ,
  5. Name = group.Key.Name,
  6. Amount = group.Sum(item => item.Amount)
  7. })
  8. .ToList();
英文:

you can do it by 'Group By' in LINQ.

  1. var summarizedList = list.GroupBy(item => new { item.Typ, item.Name })
  2. .Select(group => new ClassName
  3. {
  4. Typ = group.Key.Typ,
  5. Name = group.Key.Name,
  6. Amount = group.Sum(item => item.Amount)
  7. })
  8. .ToList();

huangapple
  • 本文由 发表于 2023年8月10日 15:20:25
  • 转载请务必保留本文链接:https://go.coder-hub.com/76873431.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定