Frage

I've been working on this code for a while now, and am very slow at this point. I don't know if the answer is obvious, but I haven't been able to think of a way to convert this bit:

foreach (Item i in stockList)
{
    if (i == order.OrderItem)
        i.ChangeStock(order.NumberOfItems);
}
outStandingOrders.Remove(order);

into a lambda expression. The best I could come up with is

stockList.ForEach(i => i == order.OrderItem)

(Don't know where to go from here)

There is also only ever one item in stockList that is equal to order.OrderItem.

Any help would be hot

Thanks!

War es hilfreich?

Lösung

Basing on your information that "There is also only ever one item in stockList that is equal to order.OrderItem", I would write it simply:

 var item = stockList.FirstOrDefault(i => i == order.OrderItem);
 if (item != null)
 {
     item.ChangeStock(order.NumberOfItems);    
 }

Andere Tipps

stockList.FindAll(i => i == order.OrderItem)
.ForEach(i => i.ChangeStock(order.NumberOfItems));

Untested, just typed ^^

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top