Entwickler-Ecke

WinForms - Listbox.AddRange() - Eine Liste zur ListBox hinzufügen


ChrisHa - Do 10.04.14 15:36
Titel: Listbox.AddRange() - Eine Liste zur ListBox hinzufügen
Hallo liebe Gemeinde,

bin gerade wirklich am verzweifeln.


C#-Quelltext
1:
lst_MovieDatabase.Items.AddRange(MovieProperties.LstName);                    


Zum Code:
lst_MovieDatabase - Listbox auf der Form
MovieProperties - Klasse in der das Array vorhanden ist
LstName - List<string> in der Klasse MovieProperties


Fehlermeldungen:

Quelltext
1:
2:
3:
4:
5:
6:
Fehler  
1  Die beste Übereinstimmung für die überladene System.Windows.Forms.ListBox.ObjectCollection.AddRange(System.Windows.Forms.ListBox.ObjectCollection)-Methode hat einige ungültige Argumente.  PFAD  36  13  Movie

UND

Fehler  2  1-Argument: kann nicht von "System.Collections.Generic.List<string>" in "System.Windows.Forms.ListBox.ObjectCollection" konvertiert werden PFAD  36  46  Movie

Es ist sichelrich wieder extrem leicht doch leider finde ich den Fehler einfach nicht. Google sagt mir, dass ich genau das so machen soll.

Vielen Dank für eure Hilfe.

Moderiert von user profile iconTh69: Quote- durch C#-Tags ersetzt


Christian S. - Do 10.04.14 15:42

Die AddRange-Methode nimmt entweder ein Array object[] oder ObjectCollection. List<string> ist in keines davon einfach so konvertierbar. Was aber konvertierbar ist, ist ein string[]-Array, und das bekommst Du so:

C#-Quelltext
1:
lst_MovieDatabase.Items.AddRange(MovieProperties.LstName.ToArray());                    


ChrisHa - Do 10.04.14 15:44

Erstmal danke für die schnelle Antwort.
Jetzt stehen bei mir aber in der List alle Objekte in einer Zeile. Wird wohl am einlesen liegen oder?


Christian S. - Do 10.04.14 15:48

Dann wird vorher die List<string> auch nur einen Eintrag gehabt haben und ja, das liegt dann wohl am Einlesen.


ChrisHa - Fr 11.04.14 06:39

Habe meinen Fehler gefunden.
Tatsächlich beim Einlesen.

C#-Quelltext
1:
2:
3:
4:
while (!sr.EndOfStream)
{
    LstName.Add(sr.ReadLine());
}

Hatte hier sr.ReadToEnd(), was natürlich nicht gerade sinnvoll ist.

Es funktioniert jetzt. Danke nochmal an Christian S.

Moderiert von user profile iconChristian S.: Quote- durch C#-Tags ersetzt