Zot*_*ote 10 .net c# linq ienumerable
公共课项{...}
public class Order
{
public List<Item> Items
...
}
public class Customer
{
public List<Order> Orders
...
}
Run Code Online (Sandbox Code Playgroud)
现在,使用LINQ我需要获得客户购买的所有商品.我怎么能够?
我尝试了类似var items = from o in cust.Orders select o.Items;但结果是IEnuberable<List<Item>>,我只想一个IEnumerable<Item>.
我在这里要求尽量避免编码2个循环.
Jon*_*eet 20
您需要SelectMany,它在查询表达式中表示为第二个(和后续)from子句:
var items = from order in customer.Orders
from item in order.Items
select item;
Run Code Online (Sandbox Code Playgroud)
或者,忽略查询表达式:
var items = customer.Orders.SelectMany(order => order.Items);
Run Code Online (Sandbox Code Playgroud)