Remove(T) Method (IEnumerable(T))
Collapse the table of content
Expand the table of content

Extensions.Remove<T> Method (IEnumerable<T>)


Removes every node in the source collection from its parent node.

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

public static void Remove<T>(
	this IEnumerable<T> source
where T : XNode


Type: System.Collections.Generic.IEnumerable<T>

An IEnumerable<T> of XNode that contains the source collection.

Type Parameters


The type of the objects in source, constrained to XNode.

This method uses snapshot semantics—that is, it copies the attributes in the source collection to a List<T> before disconnecting them from their parents. This is required to avoid issues with mixed imperative/declarative code. For more information, see Mixed Declarative Code/Imperative Code Bugs (LINQ to XML).

The following example retrieves a collection of elements. It then calls this method to remove the elements from their parent element.

XElement root = new XElement("Root",
    new XElement("Data", 1),
    new XElement("Data", 2),
    new XElement("Data", 3),
    new XElement("Data", 4),
    new XElement("Data", 5)

IEnumerable<XElement> elList =
    from el in root.Elements()
    where (int)el >= 3
    select el;



This example produces the following output:


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