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

Linq Discussion :

Clause Where de Linq sous forme de chaine


Sujet :

Linq

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    juin 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : juin 2009
    Messages : 9
    Points : 18
    Points
    18
    Par défaut Clause Where de Linq sous forme de chaine
    Bonjour à tous,

    Dans le cadre de l'analyse de pages HTML, j'ai besoin de récupérer une liste d'élément via un requête Linq du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var TableList = document.All.Where(m => m.ClassName == "ArtGrpTableStd filter");
    Mon besoin est de rendre un peu plus dynamique cette clause Where car l'utilisateur a parfois besoin de cherche selon d'autres critères.
    Une solution simple serait de passer les critères dans une chaine mais comment l'évaluer dans l'expression?

    Cela ne fonctionne pas (bien evidemement):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string criteria= @" m.ClassName == ""ArtGrpTableStd filter""";
    var TableList = document.All.Where(m => criteria);
    Mais serait-il possible de le faire l'évaluation de criteria?

    D'avance merci pour vos réponses,

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 356
    Points : 10 300
    Points
    10 300
    Par défaut
    Bonjour,
    J'ai trouvé des exemples en cherchant string linq query, par exemple celui-ci.

    Tatayo.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 356
    Points : 10 300
    Points
    10 300
    Par défaut
    Bonjour,
    En fouillant dans mes projets, j'ai retrouvé le code qui doit correspondre à ce que tu cherches à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var parameter = Expression.Parameter(typeof(TaClasse));
    LambdaExpression expression = System.Linq.Dynamic.DynamicExpression.ParseLambda(new[]{parameter},null,"Le filtre dont tu as besoin");
    var delegate = expression.Compile()
    Ensuite pour l'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delegate.DynamicInvoke(InstanceATester)
    Tatayo.

Discussions similaires

  1. Ajouter des jours à une date stockée sous forme de chaine
    Par Christophe Charron dans le forum Firebird
    Réponses: 9
    Dernier message: 17/09/2011, 08h38
  2. Réponses: 19
    Dernier message: 18/05/2010, 23h53
  3. Réponses: 2
    Dernier message: 10/09/2009, 12h22
  4. Extraction des lignes d'un fichier sous forme de chaine
    Par rahalfat10 dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2009, 16h40
  5. Réponses: 5
    Dernier message: 08/03/2006, 16h22

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