using System.Collections.Generic;
public string ProjectName
public static void Main()
Month = "January", ProjectName = "Project1", StaffName = "Venkat", Weeks = 4
Month = "February", ProjectName = "Project1", StaffName = "Venkat", Weeks = 2
Month = "January", ProjectName = "Project2", StaffName = "Venkat", Weeks = 3
Month = "March", ProjectName = "Project1", StaffName = "Kumar", Weeks = 5
Month = "December", ProjectName = "Project4", StaffName = "Venkat", Weeks = 3
var res = data.GroupBy(x => new
x.StaffName, x.ProjectName
StaffName = x.Key.StaffName, ProjectName = x.Key.ProjectName, Jan = x.Where(y => y.Month == "January").Sum(y => y.Weeks), Feb = x.Where(y => y.Month == "February").Sum(y => y.Weeks), Mar = x.Where(y => y.Month == "March").Sum(y => y.Weeks), Dec = x.Where(y => y.Month == "December").Sum(y => y.Weeks),
Total = x.Sum(y => y.Weeks)}
foreach (var item in res)
Console.WriteLine("{0} - {1} - {2} - {3} - {4} - {5} - {6}", item.StaffName, item.ProjectName, item.Jan, item.Feb, item.Mar, item.Dec, item.Dec);