Autor Beitrag
master147
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Sa 31.03.12 10:35 
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:

ausblenden 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 user profile iconTh69: Codeformatierung
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: 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:
ausblenden C#-Quelltext
1:
2:
3:
4:
foreach(String s in Rest)
{
  return s;
}
master147 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4795
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 31.03.12 11:56 
Hallo master147,

wenn du die gesamte Liste zurückgeben willst, dann reicht
ausblenden C#-Quelltext
1:
return Rest;					

Um die Texte dann der RichTextBox zuzuweisen, kannst du dann die ToArray-Methode benutzen:
ausblenden C#-Quelltext
1:
2:
3:
List<string> lines = GetRest(); // Aufruf deiner Methode

richTextBox.Lines = lines.ToArray();



P.S. Regan, auch bei deiner Schleife würde nur der erste Wert zurückgegeben.
master147 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: 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

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
int jahr = Convert.ToInt32(textBox3.Text);
           

            List<string> lines = (Feiertag.GetRest(jahr)); // Aufruf

            richTextBox1.Lines = lines.ToArray();
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 31.03.12 12:33 
Du hast diesen Hinweis überlesen.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:

wenn du die gesamte Liste zurückgeben willst, dann reicht
ausblenden C#-Quelltext
1:
return Rest;					


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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Sa 31.03.12 12:41 
Danke an euch alle !

Es hat funktioniert.
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 31.03.12 13:50 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
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 ;)