Duplicar posible:
C# foreach vs functional eachforeach (... en ...) o .ForEach(); esa es la cuestión
Ésta es una pregunta acerca de la codificación para facilitar la lectura.
Tengo un XDocument
y un de los nombres de los elementos que contienen información confidencial que necesito enmascarar (reemplazar con guiones bajos en este ejemplo).
XDocument xDoc;
List<string> propertiesToMask;
Esto se puede escribir de dos maneras, usando foreach
lazos tradicionales, o el uso de métodos .ForEach
con la sintaxis Lamba.
foreach (string propertyToMask in propertiesToMask)
{
foreach (XElement element in xDoc.Descendants(propertyToMask))
{
element.SetValue(new string('_', element.Value.Length));
}
}
o
propertiesToMask
.ForEach(propertyToMask => xDoc.Descendants(propertyToMask).ToList()
.ForEach(element => element.SetValue(new string('_', element.Value.Length))));
¿Qué enfoque crees que es el más fácil de leer, y por qué? Si prefiere el segundo ejemplo, ¿cómo lo presentaría para una máxima legibilidad?
El segundo me parece bien. Mucho menos revuelto. –
Y por las razones sugeridas en la publicación de Mehrdad. –
El código legible puede ser tan importante como el código eficiente (siempre y cuando no sea un código malicioso) – Jrud