supposons que j'ai des collections d'objets. on va dire des collections Classe, contenant des objets Eleve.

J'aimerai savoir comment le plus simplement et le plus proprement savoir si une class contient tel ou tel élève selon le nom de cette eleve.

Actuellement, je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
foreach(Eleve elv in Class)
  if( elv.Nom = "toto")
     return true;
Sauf que ceci n'est p-e pas la manière la plus propre.

Maintenant, au lieu d'avoir Class heritant de CollectionBase, je l'ai fait heriter de List ce qui me donne plein de méthode marrantes.
Contains, Exists, Find, etc

Eleve peut avoir plusieurs propriétés: nom, prenom, etc
et donc je ne pense pas pouvoir utiliser .Contains.

Par contre, Exists qui prend un prédicat plus avancé pourrait marcher. Mais voilà. J'ai un peu de mal avec cette notion.

de ce que je comprend, je dois faire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
return Class.Exists(monpredicat);
...
private static bool monpredicat(Eleve elv)
{
    return (elv.Nom.Equals("toto"))? true: false;
}
Déjà, est-ce réellement plus propre? Ensuite, comment rendre "toto" dynamique.

en gros quelque chose comme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
return Class.Exists(monpredicat("toto"));
...
private static bool monpredicat(Eleve elv, object nom)
Je découvre totalement ce genre de choses. Mais comme je n'ai jamais utilisé bcp des fonctionnalités des collections, je me dis qu'il est p-e temps de voir ce qu'on peut faire ou non.
merci d'avance à ceux qui pourront éclairer ma faible lanterne