Ich bin neu bei Lambda-Ausdrücken und möchte die Syntax nutzen, um den Wert einer Eigenschaft in einer Auflistung festzulegen bezogen auf einen anderen Wert in einer SammlungLambda-Ausdrücke - legen Sie den Wert einer Eigenschaft in einer Auflistung von Objekten basierend auf dem Wert einer anderen Eigenschaft in der Auflistung fest
Typischerweise würde ich um eine Schleife tun:
class Item
{
public string Name { get; set; }
public string Value { get; set; }
}
void Run()
{
Item item1 = new Item { Name = "name1" };
Item item2 = new Item { Name = "name2" };
Item item3 = new Item { Name = "name3" };
Collection<Item> items = new Collection<Item>() { item1, item2, item3 };
// This is what I want to simplify.
for (int i = 0; i < items.Count; i++)
{
if (items[i].Name == "name2")
{
// Set the value.
items[i].Value = "value2";
}
}
}
Geringfügige Korrektur: Das soll es sein. Value = "value2" ... –
schön. Kein Weg um die Schleife dann? –
@Michael Rut, liest die Schleife besser als die ForEach-Methode, aber das ist eine Frage der Meinung. Ich stimme dem zu, was Tomas in seiner Antwort über die Klarheit der Aktion gesagt hat. Er hat jedoch einen Weg gezeigt, wie Sie die Schleife abstrahieren können (obwohl klar ist, dass eine Schleife immer noch passieren wird, anstatt sie explizit zu programmieren oder nicht). –