using System.Collections.Generic;
public string Cat { get; set; }
public int Type { get; set; }
public int Count { get; set; }
public static void Main()
List<Test> myList = new List<Test>();
myList.Add(new Test() { Cat = "A",Type = 1, Count= 10 });
myList.Add(new Test() { Cat = "B", Type = 1, Count = 15 });
myList.Add(new Test() { Cat = "C", Type = 1, Count = 25 });
myList.Add(new Test() { Cat = "D", Type = 1, Count = 5 });
myList.Add(new Test() { Cat = "A", Type = 2, Count = 15 });
myList.Add(new Test() { Cat = "C", Type = 2, Count = 30 });
myList.Add(new Test() { Cat = "D", Type = 2, Count = 20 });
myList.Add(new Test() { Cat = "B", Type = 2, Count = 10 });
Type1Count = g.Where(a => a.Type == 1).Sum(c => c.Count),
Type2Count = g.Where(a => a.Type == 2).Sum(c => c.Count)
foreach (var item in query)
Console.WriteLine(string.Format("Cat:{0} Type1Count:{1} Type2Count:{2}", item.Cat, item.Type1Count, item.Type2Count));