Linq仅返回嵌套列表在过滤器上不匹配的列表

时间:2016-03-22 14:25:35

标签: c# linq

你有一个Order对象列表,如果是OrderLineList对象,它包含一个List。 每个OrderLineList对象都有一个" sku"属性。

我想要的是获得没有" sku"的所有OrderLineList。 ==" ABOLIVE"。

有办法吗?

我尝试过类似的东西:

salefolder.OrderList.Where(o => o.OrderLineList.Except(o.OrderLineList.SelectMany(ol => ol.Sku.Select(s => s)).Any();

但它运作不佳

由于

1 个答案:

答案 0 :(得分:1)

此代码将为您提供每个订单项中的OrderLineList项目,其中sku不匹配" ABOLIVE"。

void Main()
{
    List<Order> orders; /* some orders */

    IEnumerable<OrderLine> filteredOrderLines =
        orders
        .SelectMany(order => order.OrderLineList)
        .Where(orderLineList => orderLineList.sku != "ABOLIVE");
}

class Order
{
    public List<OrderLine> OrderLineList { get; set; }
}

class OrderLine
{
    public String sku { get; set; }
}