Ho un premio di classe che tengo il denaro dell'utente per gioco. Ho due elenchi in qualche modo che devo conciliare. Scrivo elenchi di campioni e il risultato desiderato di seguito.Unisci due elenchi in base alla chiave C#
public class Reward
{
public int Game { get; set; }
public int User { get; set; }
public int Money { get; set; }
public Reward Merge(Reward p)
{
return new Reward { Game = this.Game, User = this.User, Money = this.Money + p.Money};
}
}
IList<Reward> list1 = new List<Reward>();
list1.Add(new Reward {Game = 1, User = 1, Money = 10});
list1.Add(new Reward { Game = 1, User = 2, Money = 20 });
list1.Add(new Reward { Game = 1, User = 3, Money = 30 });
IList<Reward> list2 = new List<Reward>();
list2.Add(new Reward { Game = 2, User = 1, Money = 15 });
list2.Add(new Reward { Game = 2, User = 2, Money = 25 });
list2.Add(new Reward { Game = 2, User = 4, Money = 35 });
elenco dei risultati dovrebbe essere
User Money
1 25
2 45
3 30
4 35
provo
IList<Reward> listConcat = list1.Concat(list2)
.GroupBy(u=> u.User)
.Select(???)
.ToList();
ma come?
+1 solo per renderlo più leggibile rispetto al resto –