Holen Sie sich ein iEnumerable von einem iEnumerablen >
-
04-07-2019 - |
Frage
public class item {...}
public class Order
{
public List<Item> Items
...
}
public class Customer
{
public List<Order> Orders
...
}
Mit LINQ muss ich jetzt alle Artikel erhalten, die ein Kunde gekauft hat. Wie kann ich?
Ich habe so etwas ausprobiert var items = from o in cust.Orders select o.Items;
Aber Ergebnis ist IEnuberable<List<Item>>
Und ich will nur einen IEnumerable<Item>
.
Ich bitte hier, zu versuchen, 2 Loops zu kodieren.
Lösung
Du brauchst SelectMany
, die in Abfrageausdrücken als zweiter (und nachfolgend) dargestellt wird from
Klauseln:
var items = from order in customer.Orders
from item in order.Items
select item;
Alternativ, um Abfrageausdrücke zu ignorieren:
var items = customer.Orders.SelectMany(order => order.Items);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow