Supprimer des elements ObservableCollection [Résolu]

Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
- - Dernière réponse : cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
- 18 août 2009 à 23:07
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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
3
Merci
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);
     }  

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
0
Merci
merci
Commenter la réponse de cs_bellak
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
0
Merci
La derniere c'est du c# 3.5
Commenter la réponse de nhervagault
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
0
Merci
je prefere du Linq , c'est mieux , non ??
Commenter la réponse de cs_bellak
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
0
Merci
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.
Commenter la réponse de nhervagault
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
0
Merci
wai wai , j'ai au max une centaine d'items .
merci pour l'info
Commenter la réponse de cs_bellak