score:7

Accepted answer
from p in names
group p by p.Name into g
order by g.Key
select new { Name = g.Key, Amount = g.Sum(o => o.Amount) }

score:8

 var personMoney = names.GroupBy(x=>x.Name)
                   .Select(x=>new {Name = x.Key, AllMoney = x.Sum(y=>y.Money)})
                   .OrderByDescending(x=>x.AllMoney).ToList();

Related Articles