SectionCollection class

A collection of Section objects in the document.

public class SectionCollection : NodeCollection


Name Description
Count { get; } Gets the number of nodes in the collection.
Item { get; } Retrieves a section at the given index. (2 indexers)


Name Description
Add(Node) Adds a node to the end of the collection.
Clear() Removes all nodes from this collection and from the document.
Contains(Node) Determines whether a node is in the collection.
GetEnumerator() Provides a simple “foreach” style iteration over the collection of nodes.
IndexOf(Node) Returns the zero-based index of the specified node.
Insert(int, Node) Inserts a node into the collection at the specified index.
Remove(Node) Removes the node from the collection and from the document.
RemoveAt(int) Removes the node at the specified index from the collection and from the document.
ToArray() Copies all sections from the collection to a new array of sections. (2 methods)


A Microsoft Word document can contain multiple sections. To create a section in a Microsoft Word, select the Insert/Break command and select a break type. The break specifies whether section starts on a new page or on the same page.

Programmatically inserting and removing sections can be used to customize documents produced during mail merge. If a document needs to have different content or parts of the content depending on some criteria, then you can create a “master” document that contains multiple sections and delete some of the sections before or after mail merge.


Shows how to add and remove sections in a document.

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

builder.Write("Section 1");
builder.Write("Section 2");

Assert.AreEqual("Section 1\x000cSection 2", doc.GetText().Trim());

// Delete the first section from the document.

Assert.AreEqual("Section 2", doc.GetText().Trim());

// Append a copy of what is now the first section to the end of the document.
int lastSectionIdx = doc.Sections.Count - 1;
Section newSection = doc.Sections[lastSectionIdx].Clone();

Assert.AreEqual("Section 2\x000cSection 2", doc.GetText().Trim());

See Also