using System.Collections.Generic;
using System.Security.Cryptography;
public string Code { get; set; }
public int Amount { get; set; }
public static void Main()
List<Card> cards = new List<Card>
new Card { Code = "abc", Amount = 5 },
new Card { Code = "abc", Amount = 5 },
new Card { Code = "abc", Amount = 5 },
new Card { Code = "zxc", Amount = 10 },
new Card { Code = "zxc", Amount = 10 },
new Card { Code = "zxc", Amount = 10 },
cards.GroupBy(x => x.Code, y => y.Amount, (k, g) => new { k, s = g.Sum(x => x) }).ToList().Dump();
cards.GroupBy(x => new { x.Code, x.Amount }).Select(x => new {x.Key.Code, x.Key.Amount, Sum = x.Sum(y => y.Amount)} ).ToList().Dump();