Ayer vi un fragmento de código en una de las respuestas aquí en StackOverflow que me intrigó. Fue algo como esto:
List<string> myList = new List<string> {"aBc", "HELLO", "GoodBye"};
myList.ForEach(d=>d.ToLower());
Esperaba poder usarlo para convertir todos los elementos en myList a minúsculas. Sin embargo, no sucede ... después de ejecutar esto, la carcasa en myList permanece sin cambios.
Entonces, mi pregunta es si hay una manera, usando expresiones LINQ y Lambda para iterar y modificar fácilmente el contenido de una lista de una manera similar a esta.
Gracias Max

Eso es porque ToLower devuelve una cadena en minúsculas en lugar de convertir la cadena original. Entonces querrías algo como esto:
fuente
fuente
ForEachutilizaAction<T>, lo que significa que podría afectarxsi no fuera inmutable. Dado quexes unstring, es inmutable, por lo que nada de lo que le haga en el lambda cambiará sus propiedades. La solución de Kyralessa es su mejor opción a menos que desee implementar su propio método de extensión que le permita devolver un valor de reemplazo.fuente
fuente