Office development
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

XNode.AddBeforeSelf Method (Object[])

 

Adds the specified content immediately before this node.

Namespace:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public void AddBeforeSelf(
	params object[] content
)

Parameters

content
Type: System.Object[]

A parameter list of content objects.

Exception Condition
InvalidOperationException

The parent is null.

For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

This method will raise the Changed and the Changing events.

The XContainer stores its child nodes as a singly-linked list of XNode objects. This means that the AddBeforeSelf method must traverse the list of direct child nodes under the parent container. Therefore, using this function might affect your performance.

The following example uses a LINQ query to create an IEnumerable<T> of XElement, which it then passes to this method. This adds the results of a query to the tree in the desired location.


                XElement srcTree = new XElement("Root",
    new XElement("Element1", 1),
    new XElement("Element2", 2),
    new XElement("Element3", 3),
    new XElement("Element4", 4),
    new XElement("Element5", 5)
);
XElement xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5)
);
XElement child1 = xmlTree.Element("Child1");
child1.AddBeforeSelf(
    from el in srcTree.Elements()
    where (int)el > 3
    select el
);
Console.WriteLine(xmlTree);

This example produces the following output:


                <Root>
  <Element4>4</Element4>
  <Element5>5</Element5>
  <Child1>1</Child1>
  <Child2>2</Child2>
  <Child3>3</Child3>
  <Child4>4</Child4>
  <Child5>5</Child5>
</Root>

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show:
© 2016 Microsoft