Проблема в том, что вы создаете массив из 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);