Supprimer des elements ObservableCollection [Résolu]

Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Dernière intervention
5 mai 2011
- - Dernière réponse : cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
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 

Votre réponse

7 réponses

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

Merci nhervagault 3

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

Codes Sources a aidé 101 internautes ce mois-ci

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

Merci nhervagault 3

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

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de nhervagault
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Dernière intervention
5 mai 2011
0
Merci
merci
Commenter la réponse de cs_bellak
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
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
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
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
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
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.