public static System.Collections.IList ExpensesCrossTabList() { return(ExpenseDataSource .ExpensesDataSource() .GroupBy(t => new { Year = t.Date.Year, Month = t.Date.Month }) .Select(myGroup => new { Year = myGroup.Key.Year, Month = myGroup.Key.Month, ComputerDepartment = myGroup.Where(x => x.Department == "Computer").Sum(x => x.Expenses), MathDepartment = myGroup.Where(x => x.Department == "Math").Sum(x => x.Expenses), PhysicsDepartment = myGroup.Where(x => x.Department == "Physics").Sum(x => x.Expenses), Total = myGroup.Sum(x => x.Expenses) }) .ToList()); }