C# 如何填写&;用文本显示数组中的空元素

C# 如何填写&;用文本显示数组中的空元素,c#,arrays,string,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(

我有一段代码:

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
EMPTY
EMPTY
EMPTY

正如您所看到的,我尝试使用length,但它只计算数组中已经有值的元素。有人能帮我解决这个问题吗?提前感谢。

问题是您正在创建一个包含6个元素的数组:

string[] arrayOfString = new string[6];
。。。但随后重新分配
arrayOfString
,这意味着您完全忽略了前面的值,如下所示:

arrayOfString = name.Split(';');
因此,在该语句之后,
arrayOfString
只有3个元素,并且您原来的6元素数组可以进行垃圾收集

如果总是需要6个元素,则应将
拆分的结果复制到现有数组中:

string[] arrayOfString = new string[6];
string[] split = name.Split(';', 6); // At most 6 strings
Array.Copy(split, 0, arrayOfString, 0, split.Length);

谢谢你的回答,我知道我做错了什么。谢谢你的帮助。
string[] arrayOfString = new string[6];
string[] split = name.Split(';', 6); // At most 6 strings
Array.Copy(split, 0, arrayOfString, 0, split.Length);