Как создать неинициализированный 2D-массив?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать неинициализированный 2D-массив?

Сообщение Anonymous »

C# позволяет создавать массив без его инициализации с помощью GC.AllocateUnitializedArray. T может иметь любой тип, например bool или int. Однако я не знаю, как сделать это с 2D-массивом, например. bool[,] или int[,].
Я знаю, что могу выделить одномерный массив размером с двухмерный массив, а затем получить доступ это похоже на 2D-массив, вот так:

Код: Выделить всё

int[] array = GC.AllocateUninitializedArray(width * height); //width and height are width and height of the array
// ... (array is initialized)
int arrayAccessExample = array[x * height + y]; //x and y are anything greater than 0 and less than width and height, respectively
Но постоянно делать это раздражает, и если все сделать неправильно, это может легко привести к ошибкам. Я мог бы превратить доступ к массиву в функцию, которая устранила бы вероятность ошибок, но это все равно неудобно, и я бы предпочел просто использовать настоящий 2D-массив. Есть ли способ напрямую выделить неинициализированный 2D-массив или «привести» 1D-массив к 2D-массиву?

Подробнее здесь: https://stackoverflow.com/questions/787 ... d-2d-array
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»