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

VB.NET Discussion :

Linq dynamique sur une List(Of)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Par défaut Linq dynamique sur une List(Of)
    Bonjour à tous,

    J'ai un petit soucis d'optimisation de mon code : j'utilise une liste contenant des objets.
    Grâce à du liq, je fais différentes opérations avec notamment des sélections.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim query = From mObj As Obj In ListOfObj Where (mObj.value < 13) Select mObj
    J'aimerais savoir, s'il n'était pas possible d'avoir la condition Where dynamique : par exemple, au lieu d'avoir le code en dur, avoir la possibilité de passer un String "mObj.value < 13" qui donnerait le même résultat.
    Cela dans le but d'éviter la redondance dans mon code.

    J'ai regardé sur internet mais je n'ai rien trouvé de fonctionnel

    Par avance, merci à ceux qui auraient des idées !

    @+

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Jette un oeil à Dynamic Linq. Le code est inclus dans les samples fournis avec Visual Studio.

    Ca permet de faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim query As ListOfObj.Where("value < 13")

  3. #3
    Membre éclairé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Par défaut
    Merci de ta réponse Tomlev !

    Je suis justement en train de tester cette méthode mais j'ai des soucis pour utiliser la classe
    Je l'ai mise dans mon projet avec un simple cliquer-glisser : il me lève l'erreur suivante

    'Globalization' n'est pas un membre de 'System'
    à deux endroits

    Une idée de où peut venir l'erreur ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par koyot3 Voir le message
    Je suis justement en train de tester cette méthode mais j'ai des soucis pour utiliser la classe
    Je l'ai mise dans mon projet avec un simple cliquer-glisser : il me lève l'erreur suivante

    'Globalization' n'est pas un membre de 'System' à deux endroits
    Bizarre, vu que la plupart des classes de System.Globalization sont dans mscorlib
    Quel fichier tu as copié ? Dynamic.vb, qui contient le module DynamicQueryable ?

  5. #5
    Membre éclairé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Par défaut
    J'ai copié la classe Dynamic.vb à la racine de mon projet.
    Par contre, si j'ajoute le projet source à ma solution + référence au projet, cela fonctionne

    Enfin je dis fonctionne mais je n'arrive pas à l'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim query = From mObj As Obj In ListOfObj Where ("mObj.tps < @0 " , 13) Select mObj
    Pour le compilateur, il me manque une parenthèse, que bien sûr si j'ajoute, me dit qu'il y en a une en trop ..

    Bref...

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par koyot3 Voir le message
    Pour le compilateur, il me manque une parenthèse, que bien sûr si j'ajoute, me dit qu'il y en a une en trop ..

    Tu es sûr que la parenthèse manquante serait pas sur une ligne précédente ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IP-2010] Filtre dynamique sur une zone de liste à sélection multiple
    Par Yoran_L dans le forum InfoPath
    Réponses: 3
    Dernier message: 02/06/2015, 12h12
  2. Rafraichissement dynamique d'une colonne calculée sur une liste
    Par jsflamar dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 24/11/2011, 17h26
  3. Réponses: 4
    Dernier message: 16/06/2005, 15h37
  4. Selectionnet tous ou faire un clear sur une liste
    Par Canou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/11/2004, 10h26
  5. [Débutant][jsp] évènement sur une liste
    Par phoebe dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 10h53

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