簡體   English   中英

如何將這些嵌套的foreach轉換為linq

[英]How do you convert these nested foreach to linq

這是我的嵌套foreach查詢:

foreach (Order order in xOrders)
{
    foreach (OrderItemDetail oid in order.OrderItemDetails)
    {
        db.Entry(oid).Reload();
    }

    foreach (Dispatch dispatch in order.Dispatches)
    {
        foreach (DispatchItemDetail did in dispatch.DispatchItemDetails)
        {
            db.Entry(did).Reload();
        }

        db.Entry(dispatch).Reload();
    }

    db.Entry(order).Reload();
}

現在,我想將其轉換為純linq,這樣我就更安全了,因為枚舉已更改,因此諸如枚舉之類的錯誤無​​法繼續。

我知道,如果有1個foreach,我可以將其轉換為LINQ,例如:

foreach查詢:

foreach (Order order in xOrders)
{
    db.Entry(order).Reload();
}

LINQ查詢:

xOrders.ToList().ForEach(x => db.Entry(x).Reload());

但是我想知道如何為嵌套的foreach做到這一點,如第一個代碼塊所示。

ForEach將委托作為參數。 因此,您可以編寫靜態方法或匿名函數。 我正在用匿名方法寫作。 但是,與使用ForEach()相比,上面的方法是最好的方法

 xOrders.ToList().ForEach((x) => {
     x.OrderItemDetails.ToList().ForEach(o => db.Entry(o).Reload());
     x.Dispatches.ToList().ForEach((D) => {
       D.DispatchItemDetails.ToList().ForEach(DI => db.Entry(DI).Reload());
       db.Entry(D).Reload();
     });
     db.Entry(x).Reload();
   });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM