Supprimer des elements ObservableCollection

Résolu
cs_bellak Messages postés 136 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 5 mai 2011 - 16 août 2009 à 15:23
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
A voir également:

7 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 août 2009 à 21:47
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);
     }  
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 août 2009 à 22:45
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
3
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 à 22:19
merci
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 août 2009 à 22:47
La derniere c'est du c# 3.5
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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 à 22:52
je prefere du Linq , c'est mieux , non ??
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 août 2009 à 23:01
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.
0
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
wai wai , j'ai au max une centaine d'items .
merci pour l'info
0
Rejoignez-nous