Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Übergabe List<string> an ArrayList
vitafit
myCSharp.de - Member

Avatar #avatar-3270.png


Dabei seit:
Beiträge: 25
Herkunft: Hessen

Themenstarter:

Übergabe List<string> an ArrayList

beantworten | zitieren | melden

Guten Morgen zusammen,

ich stege gerade etwas auf dem schlauch folgenden Code betreffend: (ich hab ihn extra vereinfacht, handelt sich normalerweise um eine DB-Query...)

string[] data = new string[] { "1", "2", "3", "4" };

            ArrayList final = new ArrayList();
            List<string> entrys = new List<string>();

            foreach (string n in data)
            {
                entrys.Clear();
                entrys.Add(n);
                final.Add(entrys);
            }

Wenn ihr das ganze durchlaufen lasst, habt ihr am Schluss 4x die "4" anstelle aller Zahlen... mein Ziel ist es, mehere elemente und einer Liste vom Typ String zusammeln und diese anschließend in eine ArrayList hinzuzufügen. In diesem Beispiel erscheint das nicht sinnvoll, in größeren komplexen Querys allerdings schon.

Wo liegt mein Fehler? Wieso werden jedesmal die zuvor eingefügten Werte überschrieben?
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo vitafit,

wichtig: ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen List<T> und alle anderen typisierten Collections aus System.Collections.Generic.

Zu deiner Frage: Du fügst deiner ArrayList nicht viermal einen String hinzu, sondern viermal die gleiche Liste entrys. Dadurch, dass es ein und dieselbe Liste ist, die du der ArrayList mehrfach hinzufügst, verweisen natürlich alle Elemente auf genau diese eine Liste — von der wird keine Kopie erzeugt, sondern lediglich den ArrayList-Elementen mehrfach die Referenz auf die gleichen Liste zugewiesen.

m0rius
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von m0rius am .
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers

Moderationshinweis von herbivore (25.11.2012 - 11:58:30):

Den Umgang mit Collections und die Besonderheiten von Referenztypen setzen wir als bekannt voraus, siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1.