Warten von Name/Wert-Paaren (C#)

Viele Anwendungen müssen Informationen verwalten, die am besten als Name/Wert-Paare geführt werden. Solche Informationen können z. B. Konfigurationsinformationen oder globale Einstellungen sein. LINQ to XML enthält einige Methoden, die das Unterhalten von Name/Wert-Paaren vereinfachen. Sie können die Informationen entweder als Attribute oder als Satz untergeordneter Elemente unterhalten.

Ein Unterschied zwischen diesen beiden Formen besteht darin, dass Attribute der Beschränkung unterliegen, dass pro Element immer nur ein Attribut mit einem bestimmten Namen vorhanden sein darf. Für untergeordnete Elemente gilt diese Einschränkung nicht.

"SetAttributeValue" und "SetElementValue"

Die zwei Methoden, die das Behalten von Name/Wert-Paaren vereinfachen, sind SetAttributeValue und SetElementValue. Diese beiden Methoden besitzen eine ähnliche Semantik.

SetAttributeValue kann Attribute eines Elements hinzufügen, ändern oder entfernen.

  • Wenn Sie SetAttributeValue mit einem Namen eines Attributs aufrufen, das nicht existiert, erstellt die Methode ein neues Attribut und fügt dieses dem angegebenen Element hinzu.

  • Wenn Sie SetAttributeValue mit einem Namen eines vorhandenen Attributs und einem angegebenen Inhalt aufrufen, wird der Inhalt des Attributs durch den angegebenen Inhalt ersetzt.

  • Wenn Sie SetAttributeValue mit einem Namen eines vorhandenem Attributs aufrufen und für den Inhalt einen NULL-Wert angeben, wird das Attribut aus dem übergeordneten Element entfernt.

SetElementValue kann untergeordnete Elemente eines Elements hinzufügen, ändern oder entfernen.

  • Wenn Sie SetElementValue mit einem Namen eines untergeordneten Elements aufrufen, das nicht existiert, erstellt die Methode ein neues Element und fügt dieses dem angegebenen Element hinzu.

  • Wenn Sie SetElementValue mit einem Namen eines vorhandenen Elements und einem angegebenen Inhalt aufrufen, wird der Inhalt des Elements durch den angegebenen Inhalt ersetzt.

  • Wenn Sie SetElementValue mit einem Namen eines vorhandenen Elements aufrufen und einen NULL-Wert für den Inhalt des Elements angeben, wird der Inhalt des Elements aus dem übergeordneten Element entfernt.

Beispiel

Das folgende Beispiel erstellt ein Element, das keine Attribute besitzt. Es verwendet anschließend die Methode SetAttributeValue, um eine Liste von Name/Wert-Paaren zu erstellen und zu verwalten.

// Create an element with no content.  
XElement root = new XElement("Root");  

// Add a number of name/value pairs as attributes.  
root.SetAttributeValue("Top", 22);  
root.SetAttributeValue("Left", 20);  
root.SetAttributeValue("Bottom", 122);  
root.SetAttributeValue("Right", 300);  
root.SetAttributeValue("DefaultColor", "Color.Red");  
Console.WriteLine(root);  

// Replace the value of Top.  
root.SetAttributeValue("Top", 10);  
Console.WriteLine(root);  

// Remove DefaultColor.  
root.SetAttributeValue("DefaultColor", null);  
Console.WriteLine(root);  

Dieses Beispiel erzeugt die folgende Ausgabe:

<Root Top="22" Left="20" Bottom="122" Right="300" DefaultColor="Color.Red" />  
<Root Top="10" Left="20" Bottom="122" Right="300" DefaultColor="Color.Red" />  
<Root Top="10" Left="20" Bottom="122" Right="300" />  

Beispiel

Das folgende Beispiel erstellt ein Element, das keine untergeordneten Elemente besitzt. Es verwendet die Methode SetElementValue, um eine Liste von Name/Wert-Paaren zu erstellen und zu verwalten.

// Create an element with no content.  
XElement root = new XElement("Root");  

// Add a number of name/value pairs as elements.  
root.SetElementValue("Top", 22);  
root.SetElementValue("Left", 20);  
root.SetElementValue("Bottom", 122);  
root.SetElementValue("Right", 300);  
root.SetElementValue("DefaultColor", "Color.Red");  
Console.WriteLine(root);  
Console.WriteLine("----");  

// Replace the value of Top.  
root.SetElementValue("Top", 10);  
Console.WriteLine(root);  
Console.WriteLine("----");  

// Remove DefaultColor.  
root.SetElementValue("DefaultColor", null);  
Console.WriteLine(root);  

Dieses Beispiel erzeugt die folgende Ausgabe:

<Root>  
  <Top>22</Top>  
  <Left>20</Left>  
  <Bottom>122</Bottom>  
  <Right>300</Right>  
  <DefaultColor>Color.Red</DefaultColor>  
</Root>  
----  
<Root>  
  <Top>10</Top>  
  <Left>20</Left>  
  <Bottom>122</Bottom>  
  <Right>300</Right>  
  <DefaultColor>Color.Red</DefaultColor>  
</Root>  
----  
<Root>  
  <Top>10</Top>  
  <Left>20</Left>  
  <Bottom>122</Bottom>  
  <Right>300</Right>  
</Root>  

Siehe auch

SetAttributeValue
SetElementValue
Modifying XML Trees (LINQ to XML) (C#) (Ändern von XML-Strukturen (LINQ to XML) (C#))