NAHB
@NAHB
Стремлюсь стать выше

Можно ли сделать неполную инициализацию массива в C#?

Вопрос теоретический, мне просто интересно. Например, я знаю, что можно сделать так:

int[][] arr = new int[4][];
arr[0] = new int[] { 1, 2, 3 };
arr[1] = new int[] { 4, 5 };
arr[2] = new int[] { 6 };
arr[3] = new int[] { 7, 8, 9, 10 };

foreach(int[] subarr in arr) { // ненужный для примера цикл
  Console.WriteLine(subarr.Length);
}


Но можно ли сделать что-то вроде этого (но другим способом, потому что этот выдаёт ошибку):

int[][] arr = new int[4][] {
  new int[] { 1, 2, 3 },
  new int[] { 4, 5 }
};
arr[2] = new int[] { 6 };
arr[3] = new int[] { 7, 8, 9, 10 };


Второй вопрос: можно ли вообще не присваивать элементам массива оставшиеся значения? По идее то, что выделяется память для четырёх элементов, не означает, что эти области обязательно должны быть заполнены.
А может быть означает для синтаксиса шарпа?!
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rPman
arr[0] = new int[10]
arr[0][1]=1;
arr[0][8]=2;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы