Тема: 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; }
}
хелп