如何退回所有订单的所有订单商品?

Pri*_*ERO 1 c# linq

我有一个面试问题,无法完成它,并想知道正确的答案.

public interface ICustomer
{
    string Name { get; }
    IEnumerable<IOrder> Orders { get; }
}

public interface IOrder
{
    IEnumerable<IOrderItem> OrderItems { get; }
}

public interface IOrderItem
{
    IEnumerable<IProduct> Products { get; }
}

public interface IProduct
{
    string Name { get; }
}

public class CustomersController : ApiController
{
    public IEnumerable<IOrderItem> List(ICustomer customer)
    {
        // Return All OrderItems for all orders
    }
}
Run Code Online (Sandbox Code Playgroud)

p e*_*e p 5

您可以使用以下内容展平可枚举SelectMany:

return customer.Orders.SelectMany(o => o.OrderItems);
Run Code Online (Sandbox Code Playgroud)