[英]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.