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#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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 confirmé

    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    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