[.NET 2.0] - CLASSE POUR GÉRER FACILEMENT LES PREDICATE POUR LES GENERICS + CLAS
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 2014
-
1 juin 2007 à 13:07
cs_Dargos
Messages postés13Date d'inscriptionmardi 18 avril 2006StatutMembreDernière intervention27 mars 2008
-
7 juin 2007 à 16:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Dargos
Messages postés13Date d'inscriptionmardi 18 avril 2006StatutMembreDernière intervention27 mars 2008 7 juin 2007 à 16:35
pour ton histoire de multitude de predicateHelper, tu devrais peut etre faire une classe generique genre
public class PredicateHelper<T>{}
ca t'eviterais de reecrire plusieurs fois la meme chose.
tu devrais peut etre implementer l'interface IComparable.. je sais pas..
sinon, pour les List<T>, dans la methode FindAll(predicate(T)) par exemple, tu peux utiliser une syntaxe comme ceci :
int valSup=10;
List MyIntList = new List();
foreach (int myInt in MyIntList.FindAll(delegate(int di) { return di > valSup; }))
{
Console.WriteLine(myInt.ToString());
}
ce code va tout simplement te sortir les items de ta liste qui sont >10 sans avoir à créer une fonction qui ne servirait qu'une seule fois...
;)
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 20143 1 juin 2007 à 13:07
Bon si vous avez des idées ou recettes qui marchent mieux
car en fait les faiblesses que je vois à mon code(même si il marche et peut être déja pratique) sont :
- utilisation de la reflection (pas top notament pour récupèrer les nullables et les valeurs)
- le manque de généricité (4 classes ,1 par type)
si vous avez des idées pour améliorer cela je suis à votre écoute
+
7 juin 2007 à 16:35
public class PredicateHelper<T>{}
ca t'eviterais de reecrire plusieurs fois la meme chose.
tu devrais peut etre implementer l'interface IComparable.. je sais pas..
sinon, pour les List<T>, dans la methode FindAll(predicate(T)) par exemple, tu peux utiliser une syntaxe comme ceci :
int valSup=10;
List MyIntList = new List();
foreach (int myInt in MyIntList.FindAll(delegate(int di) { return di > valSup; }))
{
Console.WriteLine(myInt.ToString());
}
ce code va tout simplement te sortir les items de ta liste qui sont >10 sans avoir à créer une fonction qui ne servirait qu'une seule fois...
;)
1 juin 2007 à 13:07
car en fait les faiblesses que je vois à mon code(même si il marche et peut être déja pratique) sont :
- utilisation de la reflection (pas top notament pour récupèrer les nullables et les valeurs)
- le manque de généricité (4 classes ,1 par type)
si vous avez des idées pour améliorer cela je suis à votre écoute
+