NodeCollection.Insert method

Inserts a node into the collection at the specified index.

public void Insert(int index, Node node)
Parameter Type Description
index Int32 The zero-based index of the node. Negative indexes are allowed and indicate access from the back of the list. For example -1 means the last node, -2 means the second before last and so on.
node Node The node to insert.


exception condition
NotSupportedException The NodeCollection is a “deep” collection.


The node is inserted as a child into the node object from which the collection was created.

If the index is equal to or greater than Count, the node is added at the end of the collection.

If the index is negative and its absolute value is greater than Count, the node is added at the end of the collection.

If the newChild is already in the tree, it is first removed.

If the node being inserted was created from another document, you should use ImportNode to import the node to the current document. The imported node can then be inserted into the current document.


Shows how to work with a NodeCollection.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Add text to the document by inserting Runs using a DocumentBuilder.
builder.Write("Run 1. ");
builder.Write("Run 2. ");

// Every invocation of the "Write" method creates a new Run,
// which then appears in the parent Paragraph's RunCollection.
RunCollection runs = doc.FirstSection.Body.FirstParagraph.Runs;

Assert.AreEqual(2, runs.Count);

// We can also insert a node into the RunCollection manually.
Run newRun = new Run(doc, "Run 3. ");
runs.Insert(3, newRun);

Assert.AreEqual("Run 1. Run 2. Run 3.", doc.GetText().Trim());

// Access individual runs and remove them to remove their text from the document.
Run run = runs[1];

Assert.AreEqual("Run 1. Run 3.", doc.GetText().Trim());

See Also