を返す私は(EMPIDに基づいて、すべての評価の合計)のような最終的な結果を望んで三List<Results>
LINQグループと結果に
var list1 = new List<Results> {
new Results{ Empid = 1,Empname = "John",Rating = 1.33},
new Results{ Empid = 2,Empname = "Aarya",Rating = 1.6},
new Results{ Empid = 3,Empname = "Sansa",Rating = 1.6}
};
var list2 = new List<Results> {
new Results{ Empid = 1,Empname = "John",Rating = 2.33},
new Results{ Empid = 2,Empname = "Aarya",Rating = 2.6},
new Results{ Empid = 3,Empname = "Sansa",Rating = 1.6}
};
var list3 = new List<Results> {
new Results{ Empid = 1,Empname = "John",Rating = 0.33},
new Results{ Empid = 2,Empname = "Aarya",Rating = 0.6}
};
を持って
Final={Empid=1,Empname="John",Rating=3.99}
{Empid=2,Empname="Aarya",Rating=4.8}
{Empid=3,Empname="Sansa",Rating=3.2}
のLINQを使用することによって、これを達成する方法私はLinQには初めてです。私はGroupByを使って試していますが、できませんでした。
var result = list1.Concat(list2).Concat(list3)
.GroupBy(item => new { item.Empid, item.Empname }, item => item.Rating)
.Select(g => new {
Id = g.Key.Empid,
Name = g.Key.Empname,
Rating = g.Sum() });
またはクエリ構文で:によってリストや、通常のグループをマージする
サンプルデータを有効なC#コードとして提供してください。 – Enigmativity
@Enigmativityに感謝します。 – kiransr
プロのヒント:あなたが「私はこれを試しましたが、できませんでした」と書いているときはいつでも、書き留めてはいけません。 – halfer