Supprimer des elements ObservableCollection [Résolu]

cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 16 août 2009 à 15:23 - Dernière réponse : cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention
- 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
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 16 août 2009 à 21:47
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 76 internautes ce mois-ci

Commenter la réponse de nhervagault
Meilleure réponse
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 18 août 2009 à 22:45
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 76 internautes ce mois-ci

Commenter la réponse de nhervagault
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 18 août 2009 à 22:19
0
Merci
merci
Commenter la réponse de cs_bellak
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 18 août 2009 à 22:47
0
Merci
La derniere c'est du c# 3.5
Commenter la réponse de nhervagault
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 18 août 2009 à 22:52
0
Merci
je prefere du Linq , c'est mieux , non ??
Commenter la réponse de cs_bellak
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 18 août 2009 à 23:01
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
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 18 août 2009 à 23:07
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.