Question

Item de classe publique     {         ...     }

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

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

Maintenant, en utilisant LINQ, je dois obtenir tous les articles achetés par un client. Comment puis-je?

J'ai essayé quelque chose comme var items = de o dans cust.Orders, sélectionnez o.Items; , mais le résultat est IEnuberable & Lt; List < Item > et je veux simplement un IEnumerable < Item > .

Je demande ici à éviter de coder 2 boucles.

Était-ce utile?

La solution

Vous avez besoin de SelectMany , représenté dans les expressions de requête en tant que deuxième (et ultérieure) clauses à partir de :

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

Sinon, pour ignorer les expressions de requête:

var items = customer.Orders.SelectMany(order => order.Items);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top