foreach liefert nur gleiche Werte
-
Hallo Zusammen,
in folgendem Code liefert mir die foreach-Schleife am Schluss immer die gleichen Werte, ich find aber keinen Fehler. Die auskommentierte MessageBox liefert die richtigen Werte und die if-Abfrage springt auch richtig an, die Liste wird aber mit jedem Hinzufügen eines Objekt durchgängig mit den Werten des letzten Objekts gefüllt.public List<Verbreiterungen> Verbreiterungen_Laden(string sSerie) { List<Verbreiterungen> LVerbreiterungen = new List<Verbreiterungen>(); Verbreiterungen ktemp = new Verbreiterungen(); string[] sDateien; string temp; FileStream FS; StreamReader SR; sPath = Directory.GetCurrentDirectory() + sOrdner_Verbreiterungen; if (!Directory.Exists(sPath)) return LVerbreiterungen; sDateien = Directory.GetFiles(sPath); foreach (string s in sDateien) { //MessageBox.Show(s); FS = new FileStream(s, FileMode.Open, FileAccess.Read); SR = new StreamReader(FS); temp = SR.ReadLine(); if (SR.ReadLine() == sSerie) { ktemp.sBezeichnung = temp; ktemp.sSerie = sSerie; ktemp.sBreite = SR.ReadLine(); LVerbreiterungen.Add(ktemp); } SR.Close(); FS.Close(); } foreach (Verbreiterungen k in LVerbreiterungen) { MessageBox.Show(k.sBezeichnung); } return LVerbreiterungen; }
-
Du legst nur ein einziges Verbreiterungen-Objekt an.
-
Ja, aber dieses Objekt dient nur zur Zwischenspeicherung und die Daten werden mit jedem Durchlauf der Liste hinzugefügt.
-
Nein, du fügst immer wieder (eine Referenz auf) dasselbe Objekt in die Liste ein. (Falls Verbreiterungen eine
class
ist jedenfalls)
-
Jetzt wo du es sagst... Problem gelöst. Danke!