Extensions.Remove<T> Method (IEnumerable<T>)
Removes every node in the source collection from its parent node.
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
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; elList.Remove(); Console.WriteLine(root);
This example produces the following output:
<Root> <Data>1</Data> <Data>2</Data> </Root>
Available since 4.5
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Available since 8.1