可能的重复:
C# foreach 与功能各自
这是一个关于可读性编码的问题。
我有一个XDocument
和一个List<string>
包含我需要屏蔽的敏感信息的元素名称(在此示例中替换为下划线)。
XDocument xDoc;
List<string> propertiesToMask;
这可以用两种方式编写,使用传统的foreach
循环,或者使用.ForEach
带有 Lamba 语法的方法。
foreach (string propertyToMask in propertiesToMask)
{
foreach (XElement element in xDoc.Descendants(propertyToMask))
{
element.SetValue(new string('_', element.Value.Length));
}
}
或者
propertiesToMask
.ForEach(propertyToMask => xDoc.Descendants(propertyToMask).ToList()
.ForEach(element => element.SetValue(new string('_', element.Value.Length))));
您认为哪种方法最易读,为什么?如果您更喜欢第二个示例,您将如何呈现它以获得最大的可读性?