IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[4.5.3] tester si un objet vérifie un prédicat ?


Sujet :

C#

  1. #1
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut [4.5.3] tester si un objet vérifie un prédicat ?
    Salut,

    J'ai créé un joli prédicat qui fonctionne très bien avec une Liste<T>.

    Plus loin j'aimerais savoir si une instance unique de T vérifie le prédicat.

    Je pense que ça doit être possible mais je ne trouve pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    List<string> lstS = new lstS;
    var r = lstS.Where(MonPredicat()).ToList();
    ///J'aimerais faire :
    string a = "toto";
    a xxx MonPredicat()?"titi":"tata"
    Pourriez-vous m'aider ?

    Merci

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut

    Je me demande si tu ne te méprends pas sur un point

    J'ai créé un joli prédicat qui fonctionne très bien avec une Liste<T>.
    Quand tu fais :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var r = lstS.Where(MonPredicat()).ToList();

    Le prédicat dans ton Where s'applique à chaque élément de ta liste, donc à des string et pas à la liste en elle-même. Cf. la doc de List<T>.Where, en entrée c'est soit un Func<T, bool>, soit un Func<T, int, bool>. C'est donc très simple, tu as juste à appeler ton prédicat en lui passant ta valeur en entrée :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    IList<string> dummyList = new List<string> { "aaa", "axa", "bbb", "bxb", "cxx", "xxx" };
    Func<string, bool> containsX = input => input.Contains('x');
    dummyList.Where(containsX).ToList().ForEach(value => Console.WriteLine(value));
    string noX = "rrr";
    string withX = "jxx";
    Console.WriteLine(containsX(noX) ? "{0} contains at least one x" : "{0} does not contain any x", noX);
    Console.WriteLine(containsX(withX) ? "{0} contains at least one x" : "{0} does not contain any x", withX);

    Ou alors je n'ai pas compris ton problème

Discussions similaires

  1. Tester si un objet herite d'u autre
    Par adilou1981 dans le forum Langage
    Réponses: 1
    Dernier message: 23/11/2006, 10h51
  2. Tester avec l'objet precédant dans un logic:iterate
    Par kalan dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/11/2006, 15h25
  3. [C#]Question bête : Comment tester si un objet est créer?
    Par ben_ghost dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/08/2006, 20h50
  4. Réponses: 4
    Dernier message: 21/09/2005, 22h59
  5. Comment tester qu'un objet String est bien initialisé
    Par Jones dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 17/09/2004, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo