Je suis novice en termes d'expressions lambda et je cherche à utiliser la syntaxe pour définir la valeur d'une propriété dans une collection basé sur une autre valeur dans une collectionExpressions lambda - définissez la valeur d'une propriété dans une collection d'objets en fonction de la valeur d'une autre propriété dans la collection
Typiquement je fais une boucle:
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";
}
}
}
Légère correction: C'est supposé être it.value = "value2" ... –
belle. Pas moyen de contourner la boucle alors? –
@Michael Rut, la boucle se lit mieux que la méthode ForEach, mais c'est une question d'opinion. Je suis d'accord avec ce que Tomas a dit dans sa réponse sur la clarté de l'action. Cependant, il a montré un moyen pour vous de faire abstraction de la boucle (bien que clairement une boucle se produira encore, plutôt que vous le codez explicitement ou non). –