2009-05-01 9 views
2

これらのforeachをLINQまたは代理人に置き換えることはできますか?Foreach in Linq

foreach (List<Shopping.BasketPayment> payList in Basket.basketPayments) 
    { 
     foreach (var pay in payList) 
     { 
      if (pay.paymentMethod == "Money Order" 
      { 
       foreach (OrderItem orderItem in order.Items) 
       { 
+0

はい、あなたは、それのために行くことができます! –

+0

basketPaymentsにList アイテムが含まれている場合、List にはお支払いT(任意のタイプ)アイテム、 が含まれますが、注文はどこから来ますか? – eKek0

+0

SelectMany()呼び出しによってリストをフラット化できます。 –

答えて

2
var qry = from payList in Basket.basketPayments 
      from pay in payList 
      where pay.paymentMethod == "Money Order" 
      from orderItem in order.Items // where did "order" come from? 
      ... etc ending in `select` of one or more articles 

foreach(var item in qry) { 
    // do something with item 
} 
0
var allPayments = Basket.basketPayments.SelectMany(p => p); 
var moneyOrders = allPayments.Where(p => p.paymentMethod == "Money Order"); 

foreach(var payment in moneyOrders) 
{ 
    foreach(OrderItem item in order.Items) 
    { 

    } 
}