Pivot Tables: Transforming Row Data to Columns
Create pivot tables to transform row-based data into column-based summaries:
var sales = new List<Sale> { new Sale { Product = "Laptop", Quarter = "Q1", Amount = 1000 }, new Sale { Product = "Laptop", Quarter = "Q2", Amount = 1200 }, new Sale { Product = "Mouse", Quarter = "Q1", Amount = 200 }, new Sale { Product = "Mouse", Quarter = "Q2", Amount = 300 } }; // Create a pivot table var pivot = sales .GroupBy(s => s.Product) .Select(g => new { Product = g.Key, Q1 = g.Where(s => s.Quarter == "Q1") .Sum(s => s.Amount), Q2 = g.Where(s => s.Quarter == "Q2") .Sum(s => s.Amount), Total = g.Sum(s => s.Amount) }); // Results: // Product Q1 Q2 Total // Laptop 1000 1200 2200 // Mouse 200 300 500