Вопрос

Публичный класс     {         ...     }

public class Order
{
    public List<Item> Items
    ...
}

public class Customer
{
    public List<Order> Orders
    ...
}

Теперь, используя LINQ, мне нужно получить все товары, которые купил клиент. Как я могу?

Я пробовал что-то вроде var items = from o в cust.Orders select o.Items; , но в результате получается IEnuberable < List < Item > > , и я просто хочу один IEnumerable < Item > .

Я прошу здесь, чтобы попытаться избежать кодирования 2 цикла.

Это было полезно?

Решение

Вам необходимо SelectMany , который представлен в выражениях запроса в виде второго (и последующих) предложений из :

var items = from order in customer.Orders
            from item in order.Items
            select item;

Кроме того, чтобы игнорировать выражения запроса:

var items = customer.Orders.SelectMany(order => order.Items);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top