C#, Load-Wörterbuch von XML
Ich habe eine XML-Datei, die wie folgt aussieht:
<Cities>
<Name>Seattle</Name>
<State>WA</State>
<Population>552105</Population>
</Cities>
Ich soll zum laden der Stadt-info in ein Wörterbuch, so dass mein Wörterbuch die wie folgt aussieht:
cityDictionary("Name") = "Seattle"
cityDictionary("State") = "WA"
cityDictionary("Population") = "552105"
Dem folgenden code funktioniert:
var doc = XDocument.Load(@"..\..\Cities.xml");
var rootNodes = doc.Root.DescendantNodes().OfType<XElement>();
var keyValuePairs = from n in rootNodes
select new
{
TagName = n.Name,
TagValue = n.Value
};
Dicitionary<string, string> allItems = new Dictionary<string, string>();
foreach (var token in keyValuePairs) {
allItems.Add(token.TagName.ToString(), token.TagValue.ToString());
}
Aber ich möchte, um dies zu tun einen Schritt.
Irgendwelche Vorschläge?
- Warum gehst du nicht einfach umgestalten funktionierenden code in eine Methode?
- Warum wollen Sie einen Ausdruck? (Ich nehme an, du meinst "Ausdruck", wenn Sie sagen, "Schritt"?)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum so kompliziert? Hier ist, wie Sie es tun könnte in der Methode Kette syntax:
oder einfach nur ein plain old-Schleife, wenn Sie müssen, verwenden Sie eine ältere version von C# oder behalten möchten, Dinge, die old-fashioned:
Versuchen, diese mit
ToDictionary.
rootNodes.ToDictionary(n => n.Name, n => n.Value)
.Dictionary
, undXElement
nichtTagName
Eigenschaft.Entweder
In diesem Beispiel müssen Sie sicherstellen, dass der TagName wird in eine Zeichenfolge konvertiert
Oder speichern Sie die XName als Schlüssel