Как заполнить и отобразить пустой элемент в массиве с текстом - PullRequest
0 голосов
/ 19 ноября 2018

Итак, у меня есть этот кусок кода:

static void Main(string[] args)
{
    string name = "John; Jill;";
    string[] arrayOfString = new string[6];
    arrayOfString = name.Split(';');

    for(int i = 0; i < arrayOfString.Length; i++)
    {

        if (String.IsNullOrEmpty(arrayOfString[i]))
        {
            arrayOfString[i] = "EMPTY";
        }
        Console.WriteLine(arrayOfString[i].Trim());  
    }
}

Если я запустил этот код, то результат будет:

John
Jill
EMPTY

Но я хочу отобразить егочто-то вроде этого:

John
Jill
EMPTY
EMPTY
EMPTY
EMPTY

Я пытался использовать длину, как вы можете видеть, но она учитывает только те элементы в массиве, в которых уже есть значение.Может кто-нибудь помочь мне с этой проблемой?Заранее спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

Проблема в том, что вы создаете массив из 6 элементов:

string[] arrayOfString = new string[6];

... но затем переназначение arrayOfString, что означает, что вы полностью игнорируете предыдущее значение, здесь:

arrayOfString = name.Split(';');

Таким образом, после этого оператора arrayOfString имеет только 3 элемента, и ваш исходный 6-элементный массив может быть использован для сборки мусора.

Если вы всегда хотите 6 элементов, вам следует скопировать результаты Split в этот существующий массив:

string[] arrayOfString = new string[6];
string[] split = name.Split(';', 6); // At most 6 strings
Array.Copy(split, 0, arrayOfString, 0, split.Length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...