Extensions.Remove Method (IEnumerable<XAttribute>)
Removes every attribute in the source collection from its parent element.
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 System.Collections.Generic.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 attributes, and then calls this method to remove them from their parent elements.
XElement root = new XElement("Root", new XAttribute("Att1", 1), new XAttribute("Att2", 2), new XAttribute("Att3", 3), new XAttribute("Att4", 4), new XAttribute("Att5", 5) ); IEnumerable<XAttribute> atList = from at in root.Attributes() where (int)at >= 3 select at; atList.Remove(); Console.WriteLine(root);
This example produces the following output:
<Root Att1="1" Att2="2" />
Available since 8
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