Pergunta

Item da classe pública {...}

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

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

Agora, usando o LINQ, preciso obter todos os itens que um cliente comprou. Como posso?

Eu tentei algo como var items = from o in cust.Orders select o.Items; mas o resultado é IEnuberable<List<Item>> E eu quero apenas um IEnumerable<Item>.

Estou pedindo aqui para tentar evitar a codificação de 2 loops.

Foi útil?

Solução

Você precisa SelectMany, que é representado em expressões de consulta como segunda (e subsequente) from cláusulas:

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

Alternativamente, para ignorar expressões de consulta:

var items = customer.Orders.SelectMany(order => order.Items);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top