private string[] ColeccionDeCortes(string Path)
{
DirectoryInfo X = new DirectoryInfo(Path);
FileInfo[] listaDeArchivos = X.GetFiles();
string[] Coleccion;
foreach (FileInfo FI in listaDeArchivos)
{
//Add the FI.Name to the Coleccion[] array,
}
return Coleccion;
}
Ich möchte den FI.Name
in eine Zeichenkette umwandeln und sie dann zu meinem Array hinzufügen. Wie kann ich das tun?
Sie können keine Elemente zu einem Array hinzufügen, da es eine feste Länge hat. Was Sie suchen, ist eine List<string>
, die später mit list.ToArray()
in ein Array umgewandelt werden kann.
List
List<string> myCollection = new List<string>();
…
myCollection.Add(aString);
Oder, kurz gesagt (unter Verwendung von Collection-Initialisierer):
List<string> myCollection = new List<string> {aString, bString}
Wenn Sie wirklich ein Array am Ende haben wollen, verwenden Sie
myCollection.ToArray();
Es könnte besser sein, zu einer Schnittstelle zu abstrahieren, wie IEnumerable, und dann nur die Sammlung zurückzugeben.
Bearbeiten: Wenn Sie ein Array verwenden müssen, können Sie es auf die richtige Größe (d.h. die Anzahl der FileInfo, die Sie haben) vorallokieren. Dann halten Sie in der foreach-Schleife einen Zähler für den Array-Index, den Sie als nächstes aktualisieren müssen.
private string[] ColeccionDeCortes(string Path)
{
DirectoryInfo X = new DirectoryInfo(Path);
FileInfo[] listaDeArchivos = X.GetFiles();
string[] Coleccion = new string[listaDeArchivos.Length];
int i = 0;
foreach (FileInfo FI in listaDeArchivos)
{
Coleccion[i++] = FI.Name;
//Add the FI.Name to the Coleccion[] array,
}
return Coleccion;
}
string[] coleccion = Directory.GetFiles(inputPath)
.Select(x => new FileInfo(x).Name)
.ToArray();