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 :

copier par valeur un dictionnaire de classe


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut copier par valeur un dictionnaire de classe
    Bonjour,

    Je dispose d'un dictionnaire déclaré comme suit :
    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
     
    SortedDictionnary<DateTime, CMaClasse> monDico = new SortedDictionnary<DateTime, CMaClasse>();
     
    avec 
    class CMaClasse()
    {
     
    public DateTime dtHoraire;
    public int iVal;
     
    //Constructeur
    public CMaClasse()
    {
    dtHoraire = DateTime.Now;
    iVal=0;
    }
    }

    Ce dictionnaire est initialisé au travers d'une requête de base de données lors de l'initialisation de mon formulaire, puis est périodiquement réactualisé au travers de la même requête.

    Pour des raisons d'analyse, j'ai besoin à un moment donné de réaliser une copie des valeurs contenues dans ce dictionnaire, or, le = provoque une copie par référence.

    J'ai bien entendu regarder les différentes manières de procéder et je ne parviens pas à utiliser la méthode CopyTo.

    Quelqu'un a t il déjà réalisé ce genre d'action sur un SortedDictionnary ? Pouvez vous m'aiguiller?

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    Vu que ton objet est simple, le mieux est d'implémenter l'interface générique ICloneable<T>. Ensuite un appel à maClasse.Clone() te fera une copie.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Merci pour cette réponse.

    Je suis déjà capable de copier ma classe par valeur, mais ce que je cherche à faire (j'ai sans doute mal expliqué mon problème), c'est de copier par valeur directement mon SortedDictionnary.

    Et dans ce cas, je bulle un peu.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Citation Envoyé par kineton Voir le message
    Merci pour cette réponse.

    Je suis déjà capable de copier ma classe par valeur, mais ce que je cherche à faire (j'ai sans doute mal expliqué mon problème), c'est de copier par valeur directement mon SortedDictionnary.

    Et dans ce cas, je bulle un peu.
    Veux tu copier ton SortedDictionnary en conservant ou pas les mêmes références à CMaClasse ?
    Si non, MemberwiseClone peut t'aider.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par cybermaxs Voir le message
    Veux tu copier ton SortedDictionnary en conservant ou pas les mêmes références à CMaClasse ?
    Si non, MemberwiseClone peut t'aider.
    Je n'ai pas besoin de conserver les références, juste les valeurs.
    Je vais creuser cette piste, merci.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    En fait MemberwiseClone réalise un shadowclone, donc cela ne collais pas dans mon cas.

    J'ai néanmoins réussi à faire ce que je souhaitais grâce aux informations contenues ici http://stackoverflow.com/questions/1...c-specifically.

    Merci pour ton aide cybermaxs.

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

Discussions similaires

  1. copier par valeur d'un classeur vers un autre
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2009, 18h01
  2. Réponses: 3
    Dernier message: 29/07/2008, 10h56
  3. Sous-totaux classé par valeur et par année
    Par Goutlett dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/07/2008, 18h21
  4. Copier un objet par valeur ?
    Par Totanne dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/03/2008, 15h22
  5. [VB6]Valeurs une collection renvoyée par la fonction d'une classe
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 30/03/2004, 12h04

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