Hallo,
Skiller-1988 hat folgendes geschrieben: |
Ich würde dir raten entweder das Array und seinen Inhalt zu übergeben oder es global in der Klasse zu Deklarieren, dann müsste es Funktionieren. |
Davon möchte ich eher abraten: Ein Objekt (d.h. Instanz einer Klasse) sollte nur solange existieren, wie es benötigt wird. Wenn die Informationen aus dem Dir-Array nicht mehrfach benutzt werden, ist es nicht sinnvoll, sie "globaler" zu deklarieren.
@s4nDer
Dein Problem besteht darin, dass ListBox.SelectedItems eine
SelectedObjectCollection ist, während die einzelnen Items nur allgemein vom Typ
object sind. Aber Du bist der Programmierer: Du weißt, welche Art von Einträgen Du registriert hast. Du musst deshalb jedes einzelne Objekt passend casten:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| foreach (object o in DataListBox.SelectedItems) { FileInfo info = o as FileInfo; if (info != null) { nCreateFile.WriteLine(info.FileName); } } |
Dein Versuch kann u.U. klappen, es ist aber nicht sicher. Ich hätte eigentlich schon ein Veto des Compilers erwartet, denn SelectedItems enthält nunmal von der Definition her keine FileInfo-Instanzen.
Übrigens hast Du den Fehler gemacht, dass der StreamWriter in der Schleife geschlossen wird. Das führt natürlich im zweiten Durchgang zu einer Exception. Besser ist (auch aus diesem Grund) sowieso ein
using-Block:
C#-Quelltext
1: 2: 3: 4:
| using(StreamWriter nCreateFile = new StreamWriter("Info.csv")) { } |
Gruß Jürgen
PS. Vielleicht liegt der von Dir jetzt gemeldete Fehler gar nicht an der Schleife, sondern am StreamWriter. Auch deshalb ist es immer hilfreich, eine Exception genau zu untersuchen und anzugeben.