Я не могу сделать группировку по моей структуре. Группировка должна выполняться детским имуществом. У меня есть Sellers
(List<SellerModel>
) с Products
(List<ProductModel>
). Каждый продукт имеет Category
(CategoryId
). В качестве ввода у меня есть List<SellerModel>
. И в качестве вывода мне нужен список категорий. (List<CategoryModel>
)linq grouping by children object property
Структура модели мне нужно иметь следующий:
public class CategoryModel
{
public Guid Id {get;set;}
public List<SellerModel> Sellers { get; set; }
}
public class SellerModel
{
public Guid Id {get;set;}
public List<ProductModel> Products { get; set; }
}
public class ProductModel
{
public Guid Id {get;set;}
public string Name {get;set;}
public Guid CategoryId {get;set;} // THIS IS THE PROPERTY TO GROUP BY
}
Теперь я должен группе ProductModel.CategoryId
. Итак, структура результата - List<CategoryModel>
, но это был бы не простой список категорий. Это будет список, содержащий продавцы и продукты. Imaging, если у вас есть список продавцов, которые продают разные продукты в разных категориях. И теперь вам нужно знать все доступные категории. А также вы должны знать, какой продавец продает какие продукты в данной категории.
Я пытался сделать некоторые группировки, но я очень новичок в LinQ, и это не базовая группировка, я думаю. Я считаю, что я не понимаю логики, как делать группировку здесь.
var t = sellers.GroupBy(x => x.Products.Select(y => y.CategoryId)).Select(a => a.Key)
Так что вы хотите получить список всех категорий? – CSharpie
Что вы хотите сгруппировать кем? –