Partage
  • Partager sur Facebook
  • Partager sur Twitter

Donner à une variable la même valeur d'une autre

Sujet résolu
Anonyme
    21 février 2020 à 21:51:45

    Bonjour,

    Le titre est juste, mais c'est un peu plus compliquer :

    J'ai deux listes, listeA et listeB. ListeB contient des valeurs et listeA aucune. 

    Je veux que listeA est les même valeur que listeB donc je fais :

    listA = listB;

    Cela fonctionne MAIS quand je fais ensuite

    listB.Add("Une valeur");

    Ma listA aura cette valeur d'ajouter aussi. 

    Pour remédier à ce problème, je procède comme cela :

    string[] temp = listB.ToArray();
    listA = temp.ToList();

    Mais c'est, j'en suis sure, pas la bonne méthode du tous pour le faire.

    Pouvez-vous m'éclaircir sur comment donner les valeurs d'une listA à une autre sans que quand on en modifie ça modifie l'autre ?

    Merci :)



    • Partager sur Facebook
    • Partager sur Twitter
      22 février 2020 à 7:30:49

      Ça s'appelle faire une copie, ou cloner (construire une copie, contenant les mêmes éléments)

      Voir la méthode clone.

      -
      Edité par michelbillaud 22 février 2020 à 11:59:49

      • Partager sur Facebook
      • Partager sur Twitter
        22 février 2020 à 11:34:52

        Salut !

        Tu peux aussi faire listA = new List<string>(listB);

        C'est dû au fait que tu travailles sur un type référence. Ta variable listA pointe vers la même référence d'objet (la même instance) que listB. Sans dupliquer cette instance.

        • Partager sur Facebook
        • Partager sur Twitter
          22 février 2020 à 12:01:19

          Faut savoir si il veut un array, ou une liste.

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            22 février 2020 à 14:50:05

            Merci pour vos réponses, cela est très utile ! Sujet résolu !
            • Partager sur Facebook
            • Partager sur Twitter

            Donner à une variable la même valeur d'une autre

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown