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!


Log in to reply