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 :

Peut-on optimiser ?


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 128
    Points : 61
    Points
    61
    Par défaut Peut-on optimiser ?
    Bonjour,

    Je me suis trituré la tête sur un truc ce matin, mais n'ayant pas réussi j'ai abandonné et fait mon code normalement.
    mais je me pose encore la question s'il y avait eu une autre façon...

    en fait j'ai une ligne de texte séparé par des ";" qui contiennent des identifiants

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lnkbJournaux.CommandArgument = "12;145;4447"
    d'un autre côté, j'ai une liste de champs texte qui permette de définir à quoi correspondent ces arguments

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim paramName() As String = {"idEntreprise", "idOs", "idMaille"}
    je voudrais faire coïncider les deux sous forme de dictionnaire (string,string)

    Je n'ai pas réussi avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lnkbJournaux.CommandArgument.Split(";").ToDictionary...
    et donc du me rabattre sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Dim paramName() As String = {"idEntreprise", "idOs", "idMaille"}
     
            Dim dict2 As New Dictionary(Of String, String)
            Dim i = 0
            For Each el In lnkbJournaux.CommandArgument.Split(";")
                dict2.Add(paramName(i), el)
                i += 1
            Next
    mais ma curiosité m'invite à poser cette question, si il n'y avait pas mieux à faire ?

    Merci d'avance pour votre retour.
    Bonne journée !
    -----------------------------------------
    à l'origine PHP/Mysql. Pro : Asp.net/Vb/SQL/Webform siteweb

  2. #2
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Optimiser n'est a priori pas le bon terme ; tu ne cherches pas à améliorer les performances mais juste à voir si un code plus clair était possible (ou je me trompe ?)

    A priori Il y a plein de solutions disponibles ; à voir ce qui correspond le mieux , on peut rester sur un Dictionary(Of String, String), on peut imaginer une liste de tuple (List(Of (String, String))) ou autre

    L'idée de base repose de toute façon sur la même méthode à savoir la méthode d'extension Zip et se présente donc ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    paramName.Zip(lnkbJournaux.CommandArgument.Split(";")
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Oui, tout à fait, c'est pour plus de clarté, car là il y a le i, le foreach etc beaucoup de ligne pour une fonctionnalité qui semble simple.

    Je viens d'essayé le "Zip" je comprends le principe, mais à moins que je me trompe, si je veux que cette fusion me retourne "un couple" Key/Value pour mettre dans mon dictionnaire par exemple,voici ce que j'ai fais. (sans l'ajout du ToDictionnary, mon linq retourne bien les couples

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim dict As New Dictionary(Of String, String) From {{"type", "const"}}
     
    paramName.Zip(lnkbJournaux.CommandArgument.Split(";"), Function(first, second) New KeyValuePair(Of String, String)(first, second)).ToDictionary()
    En fait j'ai 1 paramètre de base (type),qui est mis en 1er en fonction de la fonction qui appel. suivi des couples
    en fait le 1er paramètre et le descripteur des variables que j'attends à avoir ensuite.

    Bref, là j'essai de mettre les couples en dictionnaire.
    -----------------------------------------
    à l'origine PHP/Mysql. Pro : Asp.net/Vb/SQL/Webform siteweb

  4. #4
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    ToDictionary(Function(kvp) kvp.Key, Function(kvp) kvp.Value)
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/03/2017, 14h32
  2. [Optimisation]Peut-on améliorer ce code ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/08/2007, 15h43
  3. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  4. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 10h31
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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