Зубчатый массив почти всегда является лучшим решением по разным причинам, и это один хороший пример. Для массива массивов гораздо больше гибкости, чем для многомерного массива. В этом случае, если у вас есть значения в массиве символов, конструктор класса string можно использовать для создания строки из него.
Кроме того, зубчатый массив будет состоять из «векторов» (то есть одномерных массивов с индексом с нулевым нижним пределом), которые являются гораздо более предпочтительными в .Net, поскольку CLR уделяет им особое внимание .
Так что, не зная, что делает остальная часть вашей программы, это было бы моей рекомендацией.
Если вы попытаетесь создать строку вручную с помощью циклического перемещения по индексам массива вместо использования зубчатого массива, я рекомендую использовать класс StringBuilder для этого.
Я только что ударил, но это должно быть примерно так:
// For the multi-dimentional array
StringBuilder sb = new StringBuilder();
for (int stringIndex = 0; stringIndex < s.Length; stringIndex++)
{
sb.Clear();
for (int charIndex = 0; charIndex < str.UpperBound(1); charIndex++)
sb.Append(str[stringIndex,charIndex]);
s[stringIndex] = sb.ToString();
}
// For the jagged array
for (int index = 0; index < s.Length; index++)
s[index] = new string(str[index]);