Bonjour a tous,
j'ai un petit souci sur l'utilsiation des predicates.
Je voudrais faire une recherche dans une liste avec l'utilsiation du FindIndex()
en résumé :
j'ai une classe gsd_section
1 2 3 4 5 6 7
| public ref class gsd_section {
public:
int indice;
double position;
constructeurs/destructeurs/ membres etc..
} |
dans une autre classe j'ai une liste de classes gsd_section:
Generic::List<gsd_section^> ^ListSections;
je l'initialise (gcnew), la remplit etc.. mais l'ajout des sections est faite aleatoirement. Le seule repere de position que j'ai est l'indice dans la classe
(int indice).
A un moment je voudrais faire une recherche par indice dans la liste. Donc j'utiliserai bien la fonctionnalite
ListSections->FindIndex(Predicate<T>^ match)
Donc j'ai construit ma fonction match qui pour moi permet de comparer
un indice recherché avec l'indice de la gsd_section
en tant que fonction membre de gsd_section :
1 2 3 4 5 6 7
| static bool isThisIndice(int ind0)
{
if (ind0 == indice)
return true;
else
return false;
} |
et j'utilise alors
1 2
| int indiceachercher = ...;
sectionretournee = ListSections->FindIndex(gcnew Predicate<gsd_section^>(gsd_section::isThisIndice(indiceachercher))); |
Ce serait trop simple 
La a la compilation ce sont des erreurs de type dans la fonction isThisIndice :
_reference non conforme a un membre non statique gsd_section::ind
_== : impossible de resoudre la surcharge
etc. etc.
Ca doit etre trivial comme pb mais je ne vois pas du tout pourquoi il ne peut pas lire ou comparer ind0 à indice (de la classe).
Comem c'est static, il faut que je passe en reference ? mais du coup comment connaitre la reference du "indice" ? bref.. je ne m'en sors pas trop.
Est ce que vous auriez un exemple simple de ce genre de recherche dans les listes ?
a bientot
denis
Partager