fork download
  1. using static System.Console;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Program {
  6. public static void Main() {
  7. IList<VendaDevolucao> vendas = new List<VendaDevolucao>() {
  8. new VendaDevolucao { Id = 100, Venda = 230.00, Devolucao = 0 },
  9. new VendaDevolucao { Id = 100, Venda = 0, Devolucao = 50.00 },
  10. new VendaDevolucao { Id = 101, Venda = 515.00, Devolucao = 0 },
  11. new VendaDevolucao { Id = 101, Venda = 0, Devolucao = 42.00 },
  12. };
  13. var junta = vendas.GroupBy(x => x.Id)
  14. .Select(x => new {
  15. Id = x.First().Id,
  16. Venda = x.Sum(v => v.Venda),
  17. Devolucao = x.Sum(v => v.Devolucao)
  18. });
  19. foreach (var item in junta.ToList()) WriteLine($"{item.Id} -> {item.Venda}, {item.Devolucao}");
  20. }
  21. }
  22.  
  23. public class VendaDevolucao {
  24. public virtual int Id { get; set; }
  25. public virtual double Venda { get; set; }
  26. public virtual double Devolucao { get; set; }
  27. }
  28.  
  29. //https://pt.stackoverflow.com/q/134044/101
Success #stdin #stdout 0.02s 17776KB
stdin
Standard input is empty
stdout
100 -> 230, 50
101 -> 515, 42