Tengo una recompensa de clase que mantengo el dinero del usuario por juego. Tengo dos listas de alguna manera que necesito concatecar. Escribo listas de muestra y el resultado deseado a continuación.Fusionar dos listas basadas en la clave 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 });
lista de resultados debe ser
User Money
1 25
2 45
3 30
4 35
Trato
IList<Reward> listConcat = list1.Concat(list2)
.GroupBy(u=> u.User)
.Select(???)
.ToList();
pero ¿cómo?
+1 solo por hacerlo más legible que el resto –