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;
}
Θα ήθελα να μετατρέψω το FI.Name
σε συμβολοσειρά και στη συνέχεια να το προσθέσω στον πίνακα μου. Πώς μπορώ να το κάνω αυτό;
Δεν μπορείτε να προσθέσετε στοιχεία σε έναν πίνακα, αφού έχει σταθερό μήκος, αυτό που ψάχνετε είναι μια List<string>
, η οποία μπορεί αργότερα να μετατραπεί σε πίνακα χρησιμοποιώντας την list.ToArray()
.
Χρήση List
List<string> myCollection = new List<string>();
…
myCollection.Add(aString);
Ή, εν συντομία (χρησιμοποιώντας αρχικοποιητή συλλογής):
List<string> myCollection = new List<string> {aString, bString}
Αν θέλετε πραγματικά έναν πίνακα στο τέλος, χρησιμοποιήστε
myCollection.ToArray();
Ίσως είναι καλύτερα να κάνετε αφαίρεση σε μια διασύνδεση, όπως η IEnumerable, και στη συνέχεια να επιστρέφετε απλώς τη συλλογή.
Επεξεργασία: Αν πρέπει να χρησιμοποιήσετε έναν πίνακα, μπορείτε να τον προ-διαθέσετε στο σωστό μέγεθος (δηλαδή στον αριθμό των FileInfo που έχετε). Στη συνέχεια, στο βρόχο foreach, διατηρήστε έναν μετρητή για τον δείκτη του πίνακα που πρέπει να ενημερώσετε στη συνέχεια.
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();