Refactoring ich meine foreach-Schleife von diesem vor:LINQ Refactoring
foreach (KeyValuePair[string, string] param in paramsList)
{
XmlElement mainNode = xmlDoc.CreateElement("parameter");
mainNode.SetAttribute("name", param.Key);
mainNode.SetAttribute("value", param.Value);
rootNode.AppendChild(mainNode);
}
dazu mit LINQ:
XmlElement mainNode = xmlDoc.CreateElement("parameter");
var selected = paramsList.AsEnumerable().Select(param => param).ToList();
selected.ForEach(x => (mainNode.SetAttribute("name", x.Key)));
selected.ForEach(x => (mainNode.SetAttribute("value", x.Value)));
rootNode.AppendChild(mainNode);
aber ich weiß, dass unter dem Abschnitt noch in eine einzige Schleife Refactoring werden kann, aber Ich weiß nicht wie. bitte erleuchte mich.
selected.ForEach(x => (mainNode.SetAttribute("name", x.Key)));
selected.ForEach(x => (mainNode.SetAttribute("value", x.Value)));
nicht: Auswählen (param => param) redundant? –
Außerdem würde Ihr ursprünglicher Code so viele "Parameter" -Elemente ergeben, wie Elemente in der paramsList vorhanden sind, während refaktorierter Code immer genau ein "parameter" -Element erzeugt, wobei "name" - und "value" -Attribute als Länge definiert sind (paramsList) mal drauf. Ich glaube nicht, dass Sie es korrekt refaktoriert haben. –
ja du hast absolut recht. Wie auch immer, ich habe gerade den Code von Bruno Conde kommentiert und ID ersetzt meine existierende foreach-Schleife nicht mehr. – grayman