XNode.AddBeforeSelf 方法

定义

紧邻此节点之前添加指定的内容。Adds the specified content immediately before this node.

重载

AddBeforeSelf(Object)

紧邻此节点之前添加指定的内容。Adds the specified content immediately before this node.

AddBeforeSelf(Object[])

紧邻此节点之前添加指定的内容。Adds the specified content immediately before this node.

示例

下面的示例使用 LINQ 查询来创建 XElementIEnumerable<T>,然后将其传递给此方法。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);  
Dim srcTree As XElement = _   
        <Root>  
            <Element1>1</Element1>  
            <Element2>2</Element2>  
            <Element3>3</Element3>  
            <Element4>4</Element4>  
            <Element5>5</Element5>  
        </Root>  
  
Dim xmlTree As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
            <Child4>4</Child4>  
            <Child5>5</Child5>  
        </Root>  
  
Dim child1 As XElement = xmlTree.<Child1>(0)  
child1.AddBeforeSelf( _  
From el In srcTree.Elements() _  
Where CInt(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>  

注解

有关可传递到此方法的有效内容的详细信息,请参阅system.xml.linq.xelement> 和 XDocument 对象的有效内容For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

此方法将引发 ChangedChanging 事件。This method will raise the Changed and Changing events.

XContainer 将其子注释存储为 XNode 对象的单向链接列表。The XContainer stores its child notes as a singly-linked list of XNode objects. 这意味着 AddBeforeSelf 方法必须遍历父容器下直接子节点的列表。This means that the AddBeforeSelf method must traverse the list of direct child nodes under the parent container. 因此,使用此方法可能会影响性能。Therefore, using this method might affect your performance.

AddBeforeSelf(Object)

紧邻此节点之前添加指定的内容。Adds the specified content immediately before this node.

public:
 void AddBeforeSelf(System::Object ^ content);
public void AddBeforeSelf (object content);
member this.AddBeforeSelf : obj -> unit
Public Sub AddBeforeSelf (content As Object)

参数

content
Object

要添加到此节点之前的包含简单内容的内容对象或内容对象集合。A content object that contains simple content or a collection of content objects to be added before this node.

例外

父级为 nullThe parent is null.

示例

下面的示例使用此方法将元素添加到树中。The following example uses this method to add an element into the tree.

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(  
    new XElement("NewChild", 10)  
);  
Console.WriteLine(xmlTree);  
Dim xmlTree As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
            <Child4>4</Child4>  
            <Child5>5</Child5>  
        </Root>  
  
Dim child1 As XElement = xmlTree.<Child1>(0)  
child1.AddBeforeSelf(New XElement("NewChild", 10))  
Console.WriteLine(xmlTree)  

该示例产生下面的输出:This example produces the following output:

<Root>  
  <NewChild>10</NewChild>  
  <Child1>1</Child1>  
  <Child2>2</Child2>  
  <Child3>3</Child3>  
  <Child4>4</Child4>  
  <Child5>5</Child5>  
</Root>  

注解

有关可传递到此方法的有效内容的详细信息,请参阅system.xml.linq.xelement> 和 XDocument 对象的有效内容For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

此方法将引发 ChangedChanging 事件。This method will raise the Changed and the Changing events.

XContainer 将其子节点存储为 XNode 对象的单向链接列表。The XContainer stores its child nodes as a singly-linked list of XNode objects. 这意味着 AddBeforeSelf 方法必须遍历父容器下直接子节点的列表。This means that the AddBeforeSelf method must traverse the list of direct child nodes under the parent container. 因此,使用此方法可能会影响性能。Therefore, using this method might affect your performance.

另请参阅

AddBeforeSelf(Object[])

紧邻此节点之前添加指定的内容。Adds the specified content immediately before this node.

public:
 void AddBeforeSelf(... cli::array <System::Object ^> ^ content);
public void AddBeforeSelf (params object[] content);
member this.AddBeforeSelf : obj[] -> unit
Public Sub AddBeforeSelf (ParamArray content As Object())

参数

content
Object[]

内容对象的参数列表。A parameter list of content objects.

例外

父级为 nullThe parent is null.

示例

下面的示例使用 LINQ 查询来创建 XElementIEnumerable<T>,然后将其传递给此方法。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);  
Dim srcTree As XElement = _   
        <Root>  
            <Element1>1</Element1>  
            <Element2>2</Element2>  
            <Element3>3</Element3>  
            <Element4>4</Element4>  
            <Element5>5</Element5>  
        </Root>  
  
Dim xmlTree As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <Child3>3</Child3>  
            <Child4>4</Child4>  
            <Child5>5</Child5>  
        </Root>  
  
Dim child1 As XElement = xmlTree.<Child1>(0)  
child1.AddBeforeSelf( _  
    From el In srcTree.Elements() _  
    Where CInt(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>  

注解

有关可传递到此方法的有效内容的详细信息,请参阅system.xml.linq.xelement> 和 XDocument 对象的有效内容For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

此方法将引发 ChangedChanging 事件。This method will raise the Changed and the Changing events.

XContainer 将其子节点存储为 XNode 对象的单向链接列表。The XContainer stores its child nodes as a singly-linked list of XNode objects. 这意味着 AddBeforeSelf 方法必须遍历父容器下直接子节点的列表。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.

另请参阅

适用于