Bir string[] dizisine nasıl string eklenir? .Add fonksiyonu yok

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`i bir dizeye dönüştürmek ve sonra dizime eklemek istiyorum. Bunu nasıl yapabilirim?

Çözüm

Sabit uzunlukta olduğu için bir diziye öğe ekleyemezsiniz, aradığınız şey daha sonra list.ToArray() kullanılarak bir diziye dönüştürülebilen bir Listdir.

Yorumlar (2)

System.Collections.Generic'ten List kullanın

List myCollection = new List();

…

myCollection.Add(aString);

Veya, steno (koleksiyon başlatıcı kullanarak):

List myCollection = new List {aString, bString}

Sonunda gerçekten bir dizi istiyorsanız

myCollection.ToArray();

IEnumerable gibi bir arayüze soyutlama yapıp sadece koleksiyonu döndürmeniz daha iyi olabilir.

Düzenleme: Bir dizi kullanmanız zorunluysa, onu doğru boyuta (yani sahip olduğunuz FileInfo sayısına) önceden ayırabilirsiniz. Ardından, foreach döngüsünde, bir sonraki güncellemeniz gereken dizi dizini için bir sayaç tutun.

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;
}
Yorumlar (2)
string[] coleccion = Directory.GetFiles(inputPath)
    .Select(x => new FileInfo(x).Name)
    .ToArray();
Yorumlar (0)