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)
Type Parameters
- T
The type of the objects in source, constrained to XNode.
Parameters
- source
- Type: System.Collections.Generic.IEnumerable<T>
An IEnumerable<T> of XNode that contains the source collection.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable<T>. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).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 (C#) (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; elList.Remove(); Console.WriteLine(root);
This example produces the following output:
<Root> <Data>1</Data> <Data>2</Data> </Root>
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.