У меня есть классический сценарий Order -> Order Row, примерно такой:
public class Order
{
public int Id { get; set; }
public string Name { get; set; }
public List<OrderRow> OrderRows { get; set; }
}
public class OrderRow
{
public int Id { get; set; }
public int ProductId { get; set; }
public int Amount { get; set; }
}
и список . Из этого списка заказов я хочу получить список всех уникальных ProductIds.
Я решил это так:
var orders = new List<Order>();
// TODO get the orders from DB
var products = new Dictionary<int,int>();
orders.ForEach(order => order.OrderRows.ForEach(row => products[row.ProductId]=row.ProductId));
но у меня есть вопросы о том, как я использую словарь и почему я не использовал LINQs GroupBy, а также комментирует, что не очень понятно, как он работает. Я думаю, что решение хорошо, но комментарии заставили меня хотеть попытаться решить его в LINQ, но по какой-то причине я попал в кирпичную стену, пытаясь.
Как получить список уникальных идентификаторов продуктов из списка заказов с помощью LINQ здесь?