私はゲームごとにユーザーのお金を保つクラスの報酬を持っています。 私は何とか2つのリストを持っているので、私は結びつく必要があります。私は以下のサンプルリストと望ましい結果を書いています。キーCに基づいて2つのリストをマージする
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 });
結果一覧は、私が
IList<Reward> listConcat = list1.Concat(list2)
.GroupBy(u=> u.User)
.Select(???)
.ToList();
が、どのようにしてみてください
User Money
1 25
2 45
3 30
4 35
すべきですか?
+1これは残りの部分よりも読みやすくするためです –