using System.Collections.Generic;
public static void Main()
List<Product> products = new List<Product>
new Product { ID = 1, Name = "Apple", Category = "Fruits" },
new Product { ID = 2, Name = "Carrot", Category = "Vegetables" },
new Product { ID = 3, Name = "Banana", Category = "Fruits" },
new Product { ID = 4, Name = "Lettuce", Category = "Vegetables" },
new Product { ID = 5, Name = "Orange", Category = "Fruits" }
var groupedAndOrderedProducts = products
.GroupBy(p => p.Category)
Products = g.OrderBy(p => p.Name)
foreach (var group in groupedAndOrderedProducts)
Console.WriteLine($"Category: {group.Category}");
foreach (var product in group.Products)
Console.WriteLine($" - {product.Name}");
public int ID { get; set; }
public string Name { get; set; }
public string Category { get; set; }