Heim > Backend-Entwicklung > C++ > Wie fülle ich ein Wörterbuch mithilfe von C# mit XML-Daten?

Wie fülle ich ein Wörterbuch mithilfe von C# mit XML-Daten?

Susan Sarandon
Freigeben: 2025-01-04 00:01:42
Original
676 Leute haben es durchsucht

How to Populate a Dictionary with XML Data Using C#?

Bevölkerungswörterbuch mit XML-Daten

Gegeben ein leeres Wörterbuch und benutzerdefiniertes XML im Format:

<items>
  <item>
Nach dem Login kopieren

Um das Wörterbuch mit Daten aus dem XML zu füllen und es wieder zu serialisieren, verwenden wir eine benutzerdefinierte Klasse und die XmlSerializer-Klasse.

Serialisierung mit Benutzerdefinierte Klasse

  1. Definieren Sie ein benutzerdefiniertes Klassenelement, das als temporärer Container für das XML fungiert Daten:
public class item
{
    [XmlAttribute]
    public int id;
    [XmlAttribute]
    public string value;
}
Nach dem Login kopieren
  1. Erstellen Sie eine XmlSerializer-Instanz mit den entsprechenden Stamm- und Typattributen:
XmlSerializer serializer = new XmlSerializer(typeof(item[]), 
                                 new XmlRootAttribute() { ElementName = "items" });
Nach dem Login kopieren
  1. Serialisieren Sie das Wörterbuch, indem Sie es konvertieren zu einem Array von Item-Objekten und Serialisierung der Array:
serializer.Serialize(stream, 
              dict.Select(kv=>new item(){id = kv.Key,value=kv.Value}).ToArray() );
Nach dem Login kopieren

Deserialisierung mit benutzerdefinierter Klasse

  1. Deserialisierung des XML in ein Array von Elementobjekten:
var orgDict = ((item[])serializer.Deserialize(stream))
               .ToDictionary(i => i.id, i => i.value);
Nach dem Login kopieren

Alternative : Verwenden von XElement

Wenn Sie lieber das XElement verwenden möchten Klasse:

Serialisierung mit XElement

  1. Erstellen Sie ein XElement-Objekt, das die XML-Struktur darstellt:
XElement xElem = new XElement(
                    "items",
                    dict.Select(x => new XElement("item",new XAttribute("id", x.Key),new XAttribute("value", x.Value)))
                 );
var xml = xElem.ToString(); //xElem.Save(...);
Nach dem Login kopieren

Deserialisierung mit XElement

  1. Parsen Sie das XML in ein XElement Objekt:
XElement xElem2 = XElement.Parse(xml); //XElement.Load(...)
Nach dem Login kopieren
  1. Extrahieren Sie Daten aus dem XML mit LINQ und füllen Sie das Wörterbuch:
var newDict = xElem2.Descendants("item")
                    .ToDictionary(x => (int)x.Attribute("id"), x => (string)x.Attribute("value"));
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie fülle ich ein Wörterbuch mithilfe von C# mit XML-Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage