如何用文本填充和显示数组中的空元素

时间:2018-11-19 04:39:59

标签: c# arrays string

所以我有这段代码:

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

正如您所见,我尝试使用length,但是它只计算数组中已经有值的元素。谁能帮助我解决这个问题?预先感谢。

1 个答案:

答案 0 :(得分:11)

问题是您要在此处创建一个包含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);