Salut à tous

J'ai un fichier articles xml, 387M0 pour 3 millions de ligne
La plupat de ces ligne me sont inutiles.

J'ai ce petit bout de code qui marche, mais qui met plus 5H à se finir
ListeBDD : liste de string contenant la liste des constructeurs inutiles
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 For Each e As XElement In From ArtXml In LeFichierArticle.LeFichierXml.Element("files.index").Descendants("file").Reverse
                If ListeBDD.Contains(e.Attribute("Supplier_id").Value) Then
                    e.Remove()
                End If
            Next
J'ai vu qu'on pouvait faire ça en une ligne en Linq, mais je ne suis pas parvenu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Dim ddd2 = From ArtXml In LeFichierArticle.LeFichierXml.Element("files.index").Descendants("file") Select ArtXml.Attribute("Supplier_id").Value
ça me retourne bien la liste des éléments à supprimer
mais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
(From ArtXml In LeFichierArticle.LeFichierXml.Element("files.index").Descendants("file") Where ListeBDD.Contains(ArtXml.Attribute("Supplier_id").Value) Select ArtXml).remove()
Me sort une erreur de syntaxe sur la 1ere parenthèse

Quelqu'un peut-il m'éclairer sur la suppression conditionnelle d'éléments dans un fichier Xml par Linq?