using System;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
var list = new List<Test>
{
new Test { A = 1, B = 1, C = 1, GroupName = "A" },
new Test { A = 1, B = 1, C = 1, GroupName = "A" },
new Test { A = 2, B = 2, C = 2, GroupName = "B" },
new Test { A = 2, B = 2, C = 2, GroupName = "B" },
new Test { A = 3, B = 3, C = 3, GroupName = "C" },
new Test { A = 3, B = 3, C = 3, GroupName = "C" },
};
var newList = list.GroupBy(g => g.GroupName).Select(e => new
{
A_Count = e.Sum(a => a.A),
B_Count = e.Sum(b => b.B),
C_Count = e.Sum(c => c.C),
GroupName = e.Key
});
foreach (var e in newList)
{
Console.WriteLine("groupName: {0}, A sum: {1}", e.GroupName, e.A_Count);
}
}
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
public string GroupName { get; set; }
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIGxpc3QgPSBuZXcgTGlzdDxUZXN0PgoJCXsKCQkJbmV3IFRlc3QgeyBBID0gMSwgQiA9IDEsIEMgPSAxLCBHcm91cE5hbWUgPSAiQSIgfSwKCQkJbmV3IFRlc3QgeyBBID0gMSwgQiA9IDEsIEMgPSAxLCBHcm91cE5hbWUgPSAiQSIgfSwKCQkJCgkJCW5ldyBUZXN0IHsgQSA9IDIsIEIgPSAyLCBDID0gMiwgR3JvdXBOYW1lID0gIkIiIH0sCgkJCW5ldyBUZXN0IHsgQSA9IDIsIEIgPSAyLCBDID0gMiwgR3JvdXBOYW1lID0gIkIiIH0sCgkJCQoJCQluZXcgVGVzdCB7IEEgPSAzLCBCID0gMywgQyA9IDMsIEdyb3VwTmFtZSA9ICJDIiB9LAkKCQkJbmV3IFRlc3QgeyBBID0gMywgQiA9IDMsIEMgPSAzLCBHcm91cE5hbWUgPSAiQyIgfSwJCgkJfTsKCQl2YXIgbmV3TGlzdCA9IGxpc3QuR3JvdXBCeShnID0+IGcuR3JvdXBOYW1lKS5TZWxlY3QoZSA9PiBuZXcKCQl7CgkJCUFfQ291bnQgPSBlLlN1bShhID0+IGEuQSksCgkJCUJfQ291bnQgPSBlLlN1bShiID0+IGIuQiksCgkJCUNfQ291bnQgPSBlLlN1bShjID0+IGMuQyksCgkJCUdyb3VwTmFtZSA9IGUuS2V5CgkJfSk7CgkJCgkJZm9yZWFjaCAodmFyIGUgaW4gbmV3TGlzdCkKCQl7CgkJCUNvbnNvbGUuV3JpdGVMaW5lKCJncm91cE5hbWU6IHswfSwgQSBzdW06IHsxfSIsIGUuR3JvdXBOYW1lLCBlLkFfQ291bnQpOwoJCX0KCX0KCQoJcHVibGljIGludCBBIHsgZ2V0OyBzZXQ7IH0KCXB1YmxpYyBpbnQgQiB7IGdldDsgc2V0OyB9CglwdWJsaWMgaW50IEMgeyBnZXQ7IHNldDsgfQoJcHVibGljIHN0cmluZyBHcm91cE5hbWUgeyBnZXQ7IHNldDsgfQp9