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 :

[C#]Fonction de conversion ou redondance de stockage


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Par défaut [C#]Fonction de conversion ou redondance de stockage
    Hello,

    je dois stocker des données sous différents formats.
    Je dispose d'une classe dans laquelle j'ai défini un Dictionnary.
    Car à une certaine valeur je dois associer une liste de données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    public class MyClass {
         Dictionnary <double,List<Point>> dico = new Dictionnary<double,List<Point>>();
     
         public void AddPoint (double key,double coordX,double coordY){
               List<Point> list = null;
               if (!dico.TryGetValue(key, out list))
                {
                    // Création d'un nouveau élement associé à la clé
                    list = new List<Point>();
                    dico.Add(key, list);
                }
     
                Point point = new Point(coordX,coordY);
     
                list.add(point);
     
         }
    }
     
    public class Point {
         double X;
         double Y;
    }
    Mais je dois aussi utiliser de temps en temps l'ensemble de ces données pour différents calculs.
    Je me demande si je dois créer en plus une list pour stocker toutes les références vers tous les points ou utiliser une fonction de conversion ?

    Soit j'utilise une BindingList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public class MyClass {
         Dictionnary <double,List<Point>> dico = new Dictionnary<double,List<Point>>();
     
         BindingList<Point> listBinding = new BindingList<Point>();
     
         public void AddPoint (double key,double coordX,double coordY){
               List<Point> list = null;
               if (!dico.TryGetValue(key, out list))
                {
                    // Création d'un nouveau élement associé à la clé
                    list = new List<Point>();
                    dico.Add(key, list);
                }
     
                Point point = new Point(coordX,coordY);
     
                list.add(point);
     
                listBinding.add(point);
         }
    }
    ou utiliser une fonction de conversion pour regrouper toutes les listes en une seule.
    Qu'est-ce qui est le moins coûteux d'après vous ?

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut,

    tu as pensé au cas où tu veux supprimer un point ?
    tu seras obligé de le gerer dans tes deux listes, et je ne sais pas comment tu vas retrouver le fameux point dans la deuxieme liste.

    Si tu n'as pas de contrainte de ce genre , je ne crois pas que tu vas gagner beaucoup en performance, je peux meme dire que c'est negligeable. Iterer sur le dictionnaire pour recuperer les listes n'est pas couteux d'autant plus que tu travailles en type-safe donc tu n'auras pas à faire des operations de Cast qui sont assez couteuse en resources.

Discussions similaires

  1. Fonction de conversion de nombre en lettres
    Par david_chardonnet dans le forum Langage
    Réponses: 21
    Dernier message: 08/12/2021, 17h51
  2. Fonction de conversion de volume
    Par soso78 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 23/08/2005, 21h12
  3. [TestStand] Fonction de conversion...
    Par capblans dans le forum Autres langages
    Réponses: 4
    Dernier message: 26/04/2005, 08h58
  4. Réponses: 5
    Dernier message: 12/01/2005, 20h58
  5. Fonction de conversion de COLORREF en hexadécimal?
    Par charliejo dans le forum MFC
    Réponses: 4
    Dernier message: 21/02/2004, 18h25

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