Utilice la Lista <T> de System.Collections.Generic
List<string> myCollection = new List<string>();
…
myCollection.Add(aString);
O, taquigrafía (usando el inicializador de colección):
List<string> myCollection = new List<string> {aString, bString}
Si realmente quieres una matriz al final, usa
myCollection.ToArray();
Puede que sea mejor abstraer a una interfaz, como IEnumerable, y luego simplemente devolver la colección.
Editar: si debe usar una matriz, puede preasignarla al tamaño correcto (es decir, el número de FileInfo que tiene). Luego, en el ciclo foreach, mantenga un contador para el índice de matriz que necesita actualizar a continuación.
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;
}