var test = nueva lista <MesStock> { nueva MesStock {Cuid = " 1 " , Deid = " 1 " , Pno = " 1 " , Sno = " 1 " , TotalNums = 1 }, nueva MesStock {Cuid = " 2 " , Deid = " 1 " , Pno = " 1 " , Sno = " 1 " , TotalNums = 1 }, nueva MesStock {Cuid = "3 ", Deid = " 2 " , Pno = " 2 " , Sno = " 2 " , TotalNums = 2 }, nuevo MesStock {Cuid = " 4 " , Deid = " 2 " , Pno = " 2 " , Sno = " 2 " , TotalNums = 2 }, nuevo MesStock {Cuid = " 5 " , Deid = " 3 " , Pno = " 3 " ,Sno = " 3 ", TotalNums = 3 }, }; Lista <MesStock> res = nueva lista <MesStock> (); test.GroupBy (x => x.Deid + x.Pno + x.Sno, (x, y) => { var Total = y.Sum (a => a.TotalNums); retorno y.Select (t => { t.TotalNums = total, res.Add (t); retorno t; }) ToList ();. }) ToList ().; foreach ( var elemento en res) { Console.WriteLine (item.Cuid + " | " + item.TotalNums); }