Warten von Name/Wert-Paaren (C#)Maintaining Name/Value Pairs (C#)

Viele Anwendungen müssen Informationen verwalten, die am besten als Name/Wert-Paare geführt werden.Many applications have to maintain information that is best kept as name/value pairs. Solche Informationen können z. B. Konfigurationsinformationen oder globale Einstellungen sein.This information might be configuration information or global settings. LINQ to XML enthält einige Methoden, die das Unterhalten von Name/Wert-Paaren vereinfachen. contains some methods that make it easy to keep a set of name/value pairs. Sie können die Informationen entweder als Attribute oder als Satz untergeordneter Elemente unterhalten.You can either keep the information as attributes or as a set of child elements.

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.One difference between keeping the information as attributes or as child elements is that attributes have the constraint that there can be only one attribute with a particular name for an element. Für untergeordnete Elemente gilt diese Einschränkung nicht.This limitation does not apply to child elements.

"SetAttributeValue" und "SetElementValue"SetAttributeValue and SetElementValue

Zum Unterhalten von Name/Wert-Paaren stehen die folgenden beiden Methoden zur Verfügung: SetAttributeValue und SetElementValue.The two methods that facilitate keeping name/value pairs are SetAttributeValue and SetElementValue. Diese beiden Methoden besitzen eine ähnliche Semantik.These two methods have similar semantics.

SetAttributeValue kann Attribute eines Elements hinzufügen, Attribute ändern oder Attribute entfernen.SetAttributeValue can add, modify, or remove attributes of an element.

  • 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.If you call SetAttributeValue with a name of an attribute that does not exist, the method creates a new attribute and adds it to the specified element.

  • Wenn Sie SetAttributeValue mit einem Namen eines vorhandenen Attributs und einem angegebenen Inhalt aufrufen, wird der Inhalt des Attributs durch den angegebenen Inhalt ersetzt.If you call SetAttributeValue with a name of an existing attribute and with some specified content, the contents of the attribute are replaced with the specified content.

  • Wenn Sie SetAttributeValue mit einem Namen eines vorhandenen Attributs aufrufen und für den Inhalt einen NULL-Wert angeben, wird das Attribut aus dem übergeordneten Element entfernt.If you call SetAttributeValue with a name of an existing attribute, and specify null for the content, the attribute is removed from its parent.

SetElementValue kann untergeordnete Elemente eines Elements hinzufügen, ändern oder entfernen.SetElementValue can add, modify, or remove child elements of an element.

  • 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.If you call SetElementValue with a name of a child element that does not exist, the method creates a new element and adds it to the specified element.

  • Wenn Sie SetElementValue mit einem Namen eines vorhandenen Elements und einem angegebenen Inhalt aufrufen, wird der Inhalt des Elements durch den angegebenen Inhalt ersetzt.If you call SetElementValue with a name of an existing element and with some specified content, the contents of the element are replaced with the specified content.

  • Wenn Sie SetElementValue mit einem Namen eines vorhandenen Elements aufrufen und für den Inhalt einen NULL-Wert angeben, wird das Element aus dem übergeordneten Element entfernt.If you call SetElementValue with a name of an existing element, and specify null for the content, the element is removed from its parent.

BeispielExample

Das folgende Beispiel erstellt ein Element, das keine Attribute besitzt.The following example creates an element with no attributes. Es verwendet dann die SetAttributeValue-Methode, um eine Liste von Name/Wert-Paaren zu erstellen und zu unterhalten.It then uses the SetAttributeValue method to create and maintain a list of name/value pairs.

// 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:This example produces the following output:

<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" />  

BeispielExample

Das folgende Beispiel erstellt ein Element, das keine untergeordneten Elemente besitzt.The following example creates an element with no child elements. Es verwendet dann die SetElementValue-Methode, um eine Liste von Name/Wert-Paaren zu erstellen und zu unterhalten.It then uses the SetElementValue method to create and maintain a list of name/value pairs.

// 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:This example produces the following output:

<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 auchSee Also

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