OVH Cloud OVH Cloud

Filtrer dans des collections ?

9 réponses
Avatar
Olivier
Bonjour

actuellement, j'utilise des datatable et surtout les dataview mais seulement
parque que je trouve vraiment très pratique la méthode RowFilter.

Existe-t'il dans une des differentes collection disponible quelque chose qui
y ressemble sans avoir a tout ce faire à la main ?


Merci
Olivier

9 réponses

Avatar
Guillaume Davion
Avec la SortedList, tu peux avoir une collection triée, mais bon, tu
ne pourras pas changer l'ordre à la volée, et tu ne pourras trier que
sur un seul champ
Avatar
Guillaume Davion
Oups, ca c'etait pour le sort... Pour le filter par contre, rien de
comparable pour autant que je sache
Avatar
Olivier
oui, j'en ai bien peur...

quid dans le .NET 2.0 ?

Olivier


"Guillaume Davion" a écrit dans le message de news:

Oups, ca c'etait pour le sort... Pour le filter par contre, rien de
comparable pour autant que je sache



Avatar
Guillaume Davion
En pré-existant, je ne pense pas qu'il y aura cette fonctionalité,
elle sort un peu du cadre d'une simple collection.
Avatar
Olivier
>>elle sort un peu du cadre d'une simple collection.





ben, pas tant que ca je crois.
J'ai une collection fortement typée :
Dim Etudiants As New Personnes

au fur et a mesure de mon traitement, je rajoute des objets Etudiant dans ma
collection.

Dim UnEtudiant As New Etudiant
UnEtudiant.Nom = "TOTO"
UnEtudiant.Sexe = 1 ' 1=garcon, 2=Fille
Etudiants.Item.Add(UnEtudiant)

etc...etc...

Ensuite, je voudrais avoir tous les étudiants qui sont du sexe Masculin.
Et là, si j'utilise un datatable avec le DataView.RowFilter = "sexe=1" c'est
génial.
Une ligne de code et hop j'ai tout mes étudiants Garçon.

Mais avec une collection, faut boucler, tester, aujouter dans une collection
temporaire et return le tempcollection...

Mais bon on a pas le choix alors... ;-)

Merci
Olivier


"Guillaume Davion" a écrit dans le message de news:

En pré-existant, je ne pense pas qu'il y aura cette fonctionalité,
elle sort un peu du cadre d'une simple collection.
Avatar
aitoz
Simple question : Et pourquoi ne pas utiliser une base de données ?
Tu pourrais faire des select plus puissant !?

Tu n'aurais qu'a utiliser la methode clear et a recharger tes données.

Laurent
Avatar
Olivier
simplement parceque je rajoute au fur et a mesure des données dans mes
collections.
Je lance une fonction qui fait des calculs et traitements nombreux,
donc tout est en mémoire, pas de données encore enregistrées. Donc pas de
base dispo :-)

Olivier


"aitoz" a écrit dans le message de news:

Simple question : Et pourquoi ne pas utiliser une base de données ?
Tu pourrais faire des select plus puissant !?

Tu n'aurais qu'a utiliser la methode clear et a recharger tes données.

Laurent




Avatar
Tzim [MVS]
Les collections génériques permettrons se genre de chose, avec une méthode
FindAll, prenant une delegate comme critere de selection. Les methodes
annonymes permettant d'ailleurs de ne pas avoir a créer explicitement une
fonction pour chaque critère.
public List<T> FindAll(
Predicate<T> match
);sachant que :public sealed delegate bool Predicate<T>(T obj);Exemple, avec
un objet de type "Toto", pour filtrer sur sa propriété "Plop"

List<Toto> maListe = ...
List<Toto> maListePartielle = maListe.FindAll(delegate(Toto t){ return
t.Plop=="valeur recherchée; });

Tzim

"Olivier" wrote in message
news:
oui, j'en ai bien peur...

quid dans le .NET 2.0 ?

Olivier


"Guillaume Davion" a écrit dans le message de news:

Oups, ca c'etait pour le sort... Pour le filter par contre, rien de
comparable pour autant que je sache







Avatar
Olivier
ouais :-)))))))))))))))

ca sent bon tout ca :-)
a suivre...

Merci
Olivier


"Tzim [MVS]" a écrit dans le message de news:
424af541$0$18961$
Les collections génériques permettrons se genre de chose, avec une méthode
FindAll, prenant une delegate comme critere de selection. Les methodes
annonymes permettant d'ailleurs de ne pas avoir a créer explicitement une
fonction pour chaque critère.
public List<T> FindAll(
Predicate<T> match
);sachant que :public sealed delegate bool Predicate<T>(T obj);Exemple,


avec
un objet de type "Toto", pour filtrer sur sa propriété "Plop"

List<Toto> maListe = ...
List<Toto> maListePartielle = maListe.FindAll(delegate(Toto t){ return
t.Plop=="valeur recherchée; });

Tzim

"Olivier" wrote in message
news:
> oui, j'en ai bien peur...
>
> quid dans le .NET 2.0 ?
>
> Olivier
>
>
> "Guillaume Davion" a écrit dans le message de news:
>
>> Oups, ca c'etait pour le sort... Pour le filter par contre, rien de
>> comparable pour autant que je sache
>>
>
>