public static List <Card> multiply(List <Card> a, List <Card> b) { List <Card> result = new List <Card>(); foreach (var ita in a) { foreach (var itb in b) { Card c = new Card(); foreach (var it in ita.Keys()) { c.AddRegister(it, ita.GetRegister(it)); } foreach (var it in itb.Keys()) { c.AddRegister(it, itb.GetRegister(it)); } result.Add(c); } } return(result); }