Supprimer des elements ObservableCollection [Résolu]

Signaler
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
-
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
-
Bonjour tous le monde ,
SVP quelqu'un pourrait m'indiquer comment supprimer des elements ObservableCollection trouvés dans une requete Linq :
var p = from q in observableCollection1
       where q.LigneDev == 1
       select q;
//supprimer p

merci
A voir également:

7 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut

observableCollection1 est une collection donc un remove
            
var list =      new NameList();
  var p = from q in    list
      where q.FirstName == "Victor"
     select q;
     foreach (var item in p.ToList())
     {
        list.Remove(item);
     }
     foreach (var item in list)
     {
         Console.WriteLine("{0} - {1}",item.FirstName,item.LastName);
     }  
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Pour ta culture
Une autre autre écriture sans linq
compatible c#2.0

  list.ToList().ForEach( delegate (PersonName p)
     {
       if(p.FirstName== "Victor") list.Remove(p);
    });

     list.ToList().ForEach(delegate(PersonName p)
    {
        Console.WriteLine("{0} - {1}", p.FirstName, p.LastName);
    });


Ou en lambda

list.ToList().ForEach(p => { if (p.FirstName == "Victor") list.Remove(p); });
list.ToList().ForEach(p =>
            {Console.WriteLine("{0} - {1}", p.FirstName, p.LastName);});


Bon dev
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

merci
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
La derniere c'est du c# 3.5
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

je prefere du Linq , c'est mieux , non ??
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Le Foreach est plus performant dans ce cas.

Pourquoi
il y a qu'il seul boucle

Alors que dans le linq tu a la boucle du select et la boucle du delete
et linq il y a la phase d'interprétation en plus linq2msil.

Apres ca dépend du contexte et ta manière de programmer.

Mais l'écriture avec un foreach est plus précise et performante que passer par une collection des élements à supprimer.

Mias bon pour les performances si tu as 30 elements tu gagneras peut etre 1 millisecondes maxi

Bon dev.
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

wai wai , j'ai au max une centaine d'items .
merci pour l'info