2009-05-01 65 views
2

我可以用LINQ或代表来替换这些foreach吗?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

可以呀,去了! – 2009-05-01 04:08:41

回答

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) 
    { 

    } 
}