Entwickler-Ecke
WinForms - Alle Elemente einer List von Klasse aus ausgeben
master147 - Sa 31.03.12 10:35
Titel: Alle Elemente einer List von Klasse aus ausgeben
Hallo,
ich habe eine Klasse in der bestimmte Daten in einer Liste Rest gespeichert werden soll und dann die gesamte Liste in einer Richtextbox ausgegeben werden soll.
Leider funktioniert das so nicht. Weiß jemand woran das liegen könnte ?
Hier der Code der Klasse:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| List<string> Rest = new List<string>(); Rest.Add("test"); Rest.Add("test2");
for (int i = 0; i < 3;i++) { return Rest[i]; } |
Vielen Dank für eure Hilfe.
Moderiert von
Th69: Codeformatierung
Regan - Sa 31.03.12 11:07
Deine Fehlermeldung könnte etwas beschreibender sein: Was passiert denn? Wird nur das erste Element (="test") in deiner Richtextbox ausgeben? Wenn ja, dann liegt es daran, dass deine Funktion bei return schon beendet wird, d. h. die anderen Schleifendurchläufe werden gar nicht gemacht.
Edit: Es empfiehlt sich übrigens, durch eine List mit foreach zu loopen, damit du auch kein Element vergisst:
C#-Quelltext
1: 2: 3: 4:
| foreach(String s in Rest) { return s; } |
master147 - Sa 31.03.12 11:50
Hallo,
du hast Recht. Es wird nur das erste Element in der Richtextbox ausgegeben.
Bloß wie kann ich es schaffen, dass beide Elemente ausgegeben werden ?
Th69 - Sa 31.03.12 11:56
Hallo master147,
wenn du die gesamte Liste zurückgeben willst, dann reicht
Um die Texte dann der RichTextBox zuzuweisen, kannst du dann die ToArray-Methode benutzen:
C#-Quelltext
1: 2: 3:
| List<string> lines = GetRest(); richTextBox.Lines = lines.ToArray(); |
P.S. Regan, auch bei deiner Schleife würde nur der erste Wert zurückgegeben.
master147 - Sa 31.03.12 12:13
Hallo,
leider funktioniert das noch nicht ganz.
Wenn ich die Methode aufrufe bekomme ich folgenden Fehler:
Eine implizite Konvertierung vom Typ "string" in "System.Collections.Generic.List<string>" ist nicht möglich.
Rot markiert der folgende Quelltext
C#-Quelltext
1: 2: 3: 4: 5: 6:
| int jahr = Convert.ToInt32(textBox3.Text);
List<string> lines = (Feiertag.GetRest(jahr)); richTextBox1.Lines = lines.ToArray(); |
Ralf Jansen - Sa 31.03.12 12:33
Du hast diesen Hinweis überlesen.
Th69 hat folgendes geschrieben : |
wenn du die gesamte Liste zurückgeben willst, dann reicht
|
Deine GetRest Methode sollte schon die ganze Liste zurückliefern. Also ändere den Rückgabetyp der GetRest Methode von string in List<string>, entsorge die Schleife und gebe einfach die ganze Liste zurück.
master147 - Sa 31.03.12 12:41
Danke an euch alle !
Es hat funktioniert.
Regan - Sa 31.03.12 13:50
Th69 hat folgendes geschrieben : |
P.S. Regan, auch bei deiner Schleife würde nur der erste Wert zurückgegeben. |
Das ist mir bewusst. Ich wollte bloß dort allgemein nochmal nachbessern ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!