Levées directement à partir de C# 3.0, en un Mot:
Lorsqu'un nœud ou d'un attribut est ajouté à un élément (que ce soit par la construction fonctionnelle ou une méthode Add) le nœud ou l'attribut Parent de la propriété est définie à cet élément. Un nœud peut avoir qu'un seul élément parent: si vous ajoutez un à déjà eu un nœud à un autre parent, le nœud est automatiquement profonde cloné. Dans l'exemple suivant, chaque client dispose d'une copie distincte de l'adresse:
var address = new XElement ("address",
new XElement ("street", "Lawley St"),
new XElement ("town", "North Beach")
);
var customer1 = new XElement ("customer1", address);
var customer2 = new XElement ("customer2", address);
customer1.Element ("address").Element ("street").Value = "Another St";
Console.WriteLine (
customer2.Element ("address").Element ("street").Value); // Lawley St
Cette duplication maintient X-DOM l'instanciation d'objets sans effets secondaires-une autre caractéristique de la programmation fonctionnelle.