Soy nuevo en expresiones lambda y busco aprovechar la sintaxis para establecer el valor de una propiedad en una colección basado en otro valor en una colecciónExpresiones lambda: establezca el valor de una propiedad en una colección de objetos según el valor de otra propiedad en la colección
Típicamente lo haría un bucle:
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";
}
}
}
Corrección leve: se supone que es it.value = "value2" ... –
hermosa. ¿No hay forma de pasar el bucle? –
@Michael Rut, el ciclo de lectura es mejor que el método ForEach, pero eso es una cuestión de opinión. Estoy de acuerdo con lo que Tomas dijo en su respuesta sobre la claridad de la acción. Sin embargo, le mostró una forma de abstraer el ciclo (aunque claramente seguirá ocurriendo un bucle, en lugar de codificarlo explícitamente o no). –