usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceconsoleapplication1{classProgram {Static voidMain (string[] args) {List<strudent> one =NewList<strudent>(); One. ADD (NewStrudent () {age =2, name ="AAA" }); One. ADD (NewStrudent () {age =1, name ="BBB" }); One. ADD (NewStrudent () {age =3, name ="DDD" }); One. ADD (NewStrudent () {age = -, name ="FFF" }); One. ADD (NewStrudent () {age =2, name ="GGG" }); One. ADD (NewStrudent () {age = A, name ="Eee" }); List<strudent> =NewList<strudent>(); Both. ADD (NewStrudent () {age = One, name ="AAA" }); Both. ADD (NewStrudent () {age = A, name ="BBB" }); Both. ADD (NewStrudent () {age = -, name ="DDD" }); Both. ADD (NewStrudent () {age = -, name ="FFF" }); Both. ADD (NewStrudent () {age = -, name ="GGG" }); Both. ADD (NewStrudent () {age = A, name ="Eee" }); Both. ADD (NewStrudent () {age = A, name ="AAAAA" }); vartt =One . Union (both). ToList (); varres = fromPinchTT Group P byNew{p.name} into GSelect New{name = G.key.name, ACCP = g.sum (p = =p.age)}; Tt. ForEach (x={Console.WriteLine (x.name+" "+x.age); }); Console.readkey (); } } Public classstrudent { Public decimalAge {Get;Set; } Public stringName {Get;Set; } } Public classStudentlistequality:iequalitycomparer<strudent> { Public BOOLEquals (strudent x, strudent y) {returnX.name = =Y.name; } Public decimalsum (strudent x, strudent y) {if(X.name = =y.name) {returnX.age +Y.age; } return 0; } Public intGetHashCode (strudent obj) {if(obj = =NULL) { return 0; } Else { returnobj. ToString (). GetHashCode (); } } }}
C # gets multiple list<class> merges and accumulates the values under the same conditions sum