using System; using System.Linq; using System.Collections.Generic;
public class Test
{
public static void Main()
{
var result= new List<DebtCreditorRPT>();
result.Add(new DebtCreditorRPT() { MemberId = 1, Name = "a", Amount = "12"});
result.Add(new DebtCreditorRPT() { MemberId = 2, Name = "b", Amount = "13"});
result.Add(new DebtCreditorRPT() { MemberId = 1, Name = "a", Amount = "14"});
var query = result.GroupBy(i=>i.Name).Select(g => new
{
Name = g.Key,
Amount = g.Sum(x => double.Parse(x.Amount))
});
foreach (var item in query) Console.WriteLine(item);
}
}
public class DebtCreditorRPT
{
public int MemberId { get; set; }
public string Name { get; set; }
public string Amount { get; set; }
}
dXNpbmcgU3lzdGVtOyB1c2luZyBTeXN0ZW0uTGlucTsgdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIHJlc3VsdD0gbmV3IExpc3Q8RGVidENyZWRpdG9yUlBUPigpOwoJCXJlc3VsdC5BZGQobmV3IERlYnRDcmVkaXRvclJQVCgpIHsgTWVtYmVySWQgPSAxLCBOYW1lID0gImEiLCBBbW91bnQgPSAiMTIifSk7CgkJcmVzdWx0LkFkZChuZXcgRGVidENyZWRpdG9yUlBUKCkgeyBNZW1iZXJJZCA9IDIsIE5hbWUgPSAiYiIsIEFtb3VudCA9ICIxMyJ9KTsKCQlyZXN1bHQuQWRkKG5ldyBEZWJ0Q3JlZGl0b3JSUFQoKSB7IE1lbWJlcklkID0gMSwgTmFtZSA9ICJhIiwgQW1vdW50ID0gIjE0In0pOwoKCQl2YXIgcXVlcnkgPSByZXN1bHQuR3JvdXBCeShpPT5pLk5hbWUpLlNlbGVjdChnID0+IG5ldwogICAgICAgIHsgCiAgICAgICAgICAgIE5hbWUgPSBnLktleSwKICAgICAgICAgICAgQW1vdW50ID0gZy5TdW0oeCA9PiBkb3VibGUuUGFyc2UoeC5BbW91bnQpKQogICAgICAgIH0pOwoJCQoJCWZvcmVhY2ggKHZhciBpdGVtIGluIHF1ZXJ5KSBDb25zb2xlLldyaXRlTGluZShpdGVtKTsKCX0KfQoKcHVibGljICBjbGFzcyBEZWJ0Q3JlZGl0b3JSUFQKewogICAgICAgIHB1YmxpYyBpbnQgTWVtYmVySWQgeyBnZXQ7IHNldDsgfQogICAgICAgIHB1YmxpYyBzdHJpbmcgTmFtZSB7IGdldDsgc2V0OyB9CiAgICAgICAgcHVibGljIHN0cmluZyBBbW91bnQgeyBnZXQ7IHNldDsgfQp9