Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
AddBeforeSelf Method (Object[])
Collapse the table of content
Expand the table of content

XNode.AddBeforeSelf Method (Object[])

Adds the specified content immediately before this node.

Namespace:  System.Xml.Linq
Assemblies:   System.Xml.XDocument (in System.Xml.XDocument.dll)
  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.

ExceptionCondition
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>

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library
Show:
© 2015 Microsoft