1 Востаннє редагувалося burlaka.dina (30.12.2021 13:50:59)

Тема: LINQ вкладене групування

Маю таке завдання "Згрупуйте всі продукти за категоріями, всередині – за наявністю на складі, всередині останньої групи відсортуйте за цінами"

Таким чином його вирішую

public static IEnumerable<Linq7CategoryGroup> Linq7(IEnumerable<Product> products)
        {
            _ = products ?? throw new ArgumentNullException();

            /* example of Linq7result

             category - Beverages
                UnitsInStock - 39
                    price - 18.0000
                    price - 19.0000
                UnitsInStock - 17
                    price - 18.0000
                    price - 19.0000
             */

            var result = products.GroupBy(category => category.Category)
               .Select(grp => (
               grp.Key,
               grp.GroupBy(uni => uni.UnitsInStock)
               .Select(stock =>
               (
               stock.Key,
               stock.OrderBy(price => price.UnitPrice)
               )
               )));

            return (IEnumerable<Linq7CategoryGroup>)result;
        }

Питання - Як вивести значення того типу, що необхідно в методі?

IEnumerable<Linq7CategoryGroup>

трохи змінила код запиту, але помилка залишилась попередньою

var r = products.GroupBy(product => product.Category, (category, element) => (
                category,
                element.GroupBy(item => item.UnitsInStock, (units, products) =>
                (
                    units,
                    products.OrderBy(t => t.UnitPrice).Select(t => t.UnitPrice)
                ))
            ));

код классу Linq7CategoryGroup

public class Linq7CategoryGroup
    {
        public string Category { get; set; }
        public IEnumerable<Linq7UnitsInStockGroup> UnitsInStockGroup { get; set; }
    }

    public class Linq7UnitsInStockGroup
    {
        public int UnitsInStock { get; set; }
        public IEnumerable<decimal> Prices { get; set; }
    }

https://replace.org.ua/uploads/images/9993/723ad6f6d95e618c669ef3157d52ac1b.png

хелп