How to Create Pivot Data using LINQ in C#?

Are you looking forward to create a pivot data using LINQ in C#, here we go.

How to Create Pivot Data using LINQ in C#?

Below is a sample code snippet that demonstrates the creation of the Pivot Data using LINQ and C#?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AbundantcodeConsole
{

    class Program
    {
        static void Main(string[] args)
        {
            //How to Create Pivot Data using LINQ in C# ?
            List emp = new List();
            emp.Add(new Employee { EmpID = 1, SalaryDate = new DateTime(2008, 1, 1), Salary = 1234 });
            emp.Add(new Employee { EmpID = 1, SalaryDate = new DateTime(2009, 2, 1), Salary = 456 });
            emp.Add(new Employee { EmpID = 2, SalaryDate = new DateTime(2008, 1, 1), Salary = 2234 });
            emp.Add(new Employee { EmpID = 2, SalaryDate = new DateTime(2009, 2, 1), Salary = 121345 });
            emp.Add(new Employee { EmpID = 3, SalaryDate = new DateTime(2003, 2, 1), Salary = 1245 });
            emp.Add(new Employee { EmpID = 3, SalaryDate = new DateTime(2011, 3, 1), Salary = 5623 });
            var result = emp
            .GroupBy(c => c.EmpID)
            .Select(g => new
            {
                EmpID = g.Key,
                Jan = g.Where(c => c.SalaryDate.Month == 1).Sum(c => c.Salary),
                Feb = g.Where(c => c.SalaryDate.Month == 2).Sum(c => c.Salary),
                March = g.Where(c => c.SalaryDate.Month == 3).Sum(c => c.Salary)
            });
            foreach (var data in result)
            {
                Console.WriteLine(data.EmpID + " , " + data.Jan + " , " + data.Feb + " , " + data.March);
            }
            Console.ReadLine();
        }
    }

    public class Employee
    {
        public int EmpID { get; set; }
        public DateTime SalaryDate { get; set; }
        public double Salary { get; set; }
    }
}