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 :

[C#] Améliorer la recherche dans une liste avec Linq


Sujet :

Linq

  1. #1
    Membre actif Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Points : 290
    Points
    290
    Par défaut [C#] Améliorer la recherche dans une liste avec Linq
    Bonjour,

    actuellement je travail sur un projet qui manipule trop de liste générique et des observable collection, et j'utilise linq pour la recherche et la récupération des données. mais vu que mes listes peuvent contenir des centaines voir même des milliers d'objet mes requêtes prend un peut de temps pour aboutir à un résultat.

    alors ce que je cherche c'est une méthode pour accélérer un peut la recherche dans les listes.

    Une piste s'il vous plais

    Merci d'avance.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Bonjour,

    Il y a pas mal de benchmarks sur internet concernant Linq et sa lourdeur.

    Les façons les plus rapides de faire sont, dans l'ordre, le for et le foreach, avec un écart pas bien grand entre les deux.

    Je te conseille donc d'utiliser foreach pour la lisibilité.

  3. #3
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Des milliers ça reste très peu...
    Pouvez poster un exemple de code vous posant problème?

    Quelle genre de recherche est-ce? d'où proviennent vos données?
    Si elle viennent d'une base de données faites votre recherche côté base ce sera beaucoup plus rapide...

  4. #4
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Des milliers ça reste très peu...
    +1

    Je fais des requêtes Linq sur plus que ça sans problème de performance.
    Il me semble que Nathanaël avait fait le test, il y a une perte* de 50% avec les expressions lambda par rapport à un foreach, mais "pas plus".
    Donc si tu as un vrai problème de performance, ce n'est peut-être pas uniquement lié à la techno Linq...

    Un bout de code ?


    *Ce que tu perds en performances tu le gagnes en lisibilité, maintenabilité, ré-utilisabilité.

  5. #5
    Membre actif Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    J'ai testé les requêtes linq, et le résultat était, en quelques sorte, bouleversant pour moi, parce que j'ai trouvé que le linq me renvoi le résultat dans un laps de temps très cour, mais il parait que le traitement qui suit, en utilisant un foreach, alourdi un peut la réponse, j'ai donc besoin d'alléger un peut le traitement dans les boucles.

    Merci les gars pour vos remarques, qui m'ont aider à trouver le soucie.

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

Discussions similaires

  1. Problème pour rechercher dans une liste excel avec vba
    Par hop51 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/03/2013, 19h00
  2. Réponses: 1
    Dernier message: 08/08/2012, 14h52
  3. Ajout dans une liste avec un bouton
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 07/12/2005, 08h27
  4. Réponses: 2
    Dernier message: 10/10/2005, 02h25
  5. Recherche dans une liste non trié
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 13/09/2004, 13h56

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