Бөлісу құралы:


Extensions.Remove Метод

Определение

Перегрузки

Remove(IEnumerable<XAttribute>)

Удаление каждого атрибута в исходной коллекции из родительского элемента.

Remove<T>(IEnumerable<T>)

Удаление каждого узла в исходной коллекции из родительского узла.

Remove(IEnumerable<XAttribute>)

Удаление каждого атрибута в исходной коллекции из родительского элемента.

public:
[System::Runtime::CompilerServices::Extension]
 static void Remove(System::Collections::Generic::IEnumerable<System::Xml::Linq::XAttribute ^> ^ source);
public static void Remove (this System.Collections.Generic.IEnumerable<System.Xml.Linq.XAttribute> source);
public static void Remove (this System.Collections.Generic.IEnumerable<System.Xml.Linq.XAttribute?> source);
static member Remove : seq<System.Xml.Linq.XAttribute> -> unit
<Extension()>
Public Sub Remove (source As IEnumerable(Of XAttribute))

Параметры

source
IEnumerable<XAttribute>

Интерфейс IEnumerable<T> узла XAttribute, содержащий исходную коллекцию.

Примеры

В следующем примере извлекается коллекция атрибутов, а затем вызывается этот метод, чтобы удалить их из родительских элементов.

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);  
Dim root As XElement = <Root Att1="1" Att2="2" Att3="3" Att4="4" Att5="5"/>  

Dim atList = From at In root.Attributes _  
             Where at.Value >= 3 _  
             Select at  

atList.Remove()  

Console.WriteLine(root)  

В этом примере выводятся следующие данные:

<Root Att1="1" Att2="2" />  

Комментарии

Этот метод использует семантику моментальных снимков, то есть копирует атрибуты в исходной System.Collections.Generic.List<T> коллекции перед отключением их от родительских элементов. Это необходимо, чтобы избежать проблем со смешанным императивным или декларативным кодом. Дополнительные сведения см. в статье об ошибках смешанного декларативного кода и императивного кода (LINQ to XML).

См. также раздел

Применяется к

Remove<T>(IEnumerable<T>)

Удаление каждого узла в исходной коллекции из родительского узла.

public:
generic <typename T>
 where T : System::Xml::Linq::XNode[System::Runtime::CompilerServices::Extension]
 static void Remove(System::Collections::Generic::IEnumerable<T> ^ source);
public static void Remove<T> (this System.Collections.Generic.IEnumerable<T> source) where T : System.Xml.Linq.XNode;
public static void Remove<T> (this System.Collections.Generic.IEnumerable<T?> source) where T : System.Xml.Linq.XNode;
static member Remove : seq<'T (requires 'T :> System.Xml.Linq.XNode)> -> unit (requires 'T :> System.Xml.Linq.XNode)
<Extension()>
Public Sub Remove(Of T As XNode) (source As IEnumerable(Of T))

Параметры типа

T

Тип объектов в source, ограниченный узлом XNode.

Параметры

source
IEnumerable<T>

Интерфейс IEnumerable<T> узла XNode, содержащий исходную коллекцию.

Примеры

В следующем примере извлекается коллекция элементов. Затем он вызывает этот метод, чтобы удалить элементы из родительского элемента.

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);  
Dim root As XElement = _  
    <Root>  
        <Data>1</Data>  
        <Data>2</Data>  
        <Data>3</Data>  
        <Data>4</Data>  
        <Data>5</Data>  
    </Root>  

Dim elList = From el In root.Elements _  
             Where el.Value >= 3 _  
             Select el  

elList.Remove()  

Console.WriteLine(root)  

В этом примере выводятся следующие данные:

<Root>  
  <Data>1</Data>  
  <Data>2</Data>  
</Root>  

Комментарии

Этот метод использует семантику моментальных снимков, то есть копирует атрибуты в исходной List<T> коллекции перед отключением их от родительских элементов. Это необходимо, чтобы избежать проблем со смешанным императивным или декларативным кодом. Дополнительные сведения см. в статье об ошибках смешанного декларативного кода и императивного кода (LINQ to XML).

См. также раздел

Применяется к