Following example orders List<Product> by Product.Category and saves the grouped result into a Dictionary<string, List<Product>>.
public class Product { public string Name { get; set; } public string Category { get; set; } } List<Product> products = new List<Product>{ new Product{ Name = "Beans", Category = "Veg" }, new Product{ Name = "Apple", Category = "Fruit" }, new Product{ Name = "Tomato", Category = "Veg" }, new Product{ Name = "Orange", Category = "Fruit" }, }; Dictionary<string, List<Product>> productCategories = (from p in products group p by p.Category into g select new { Category = g.Key, Products = g } ) .ToDictionary(categories => categories.Category, categories => categories.Products.ToList<Product>());
Now you can order the result by Category name, that is the Key of Dictionary
var productCategoriesOrderd = productCategories.OrderBy(productCategory => productCategory.Key);
No comments:
Post a Comment