Как добавить строку к строке [] массив? Нет никакой функции.Add

Это требует, чтобы Ваш алгоритм на самом деле знал что Ваш разговор о. Это может быть сделано в некоторой элементарной форме, просто сравнив слова и ища синонимы и т.д., но любой вид точного результата потребовал бы некоторой формы аналитики.

204
задан FishBasketGordo 13 February 2012 в 06:08
поделиться

5 ответов

Вы не можете добавлять элементы в массив, поскольку он имеет фиксированную длину, что вы ищете List , который позже можно превратить в массив с помощью list.ToArray () .

364
ответ дан 23 November 2019 в 04:54
поделиться

Используйте List из System.Collections.Generic

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;
}
59
ответ дан 23 November 2019 в 04:54
поделиться

Я бы не использовал массив в этом случае. Вместо этого я бы использовал StringCollection.

using System.Collections.Specialized;

private StringCollection ColeccionDeCortes(string Path)   
{

    DirectoryInfo X = new DirectoryInfo(Path);

    FileInfo[] listaDeArchivos = X.GetFiles();
    StringCollection Coleccion = new StringCollection();

    foreach (FileInfo FI in listaDeArchivos)
    {
        Coleccion.Add( FI.Name );
    }
    return Coleccion;
}
0
ответ дан 23 November 2019 в 04:54
поделиться
string[] coleccion = Directory.GetFiles(inputPath)
    .Select(x => new FileInfo(x).Name)
    .ToArray();
3
ответ дан 23 November 2019 в 04:54
поделиться

Кроме того, вы можете изменить размер массива.

Array.Resize(ref array, array.Length + 1);
array[array.Length - 1] = "new string";
103
ответ дан 23 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: