Подтвердить что ты не робот

С# Создание массива массивов

Я пытаюсь создать массив массивов, которые будут использовать повторяющиеся данные, что-то вроде ниже:

int[] list1 = new int[4] { 1, 2, 3, 4 };
int[] list2 = new int[4] { 5, 6, 7, 8 };
int[] list3 = new int[4] { 1, 3, 2, 1 };
int[] list4 = new int[4] { 5, 4, 3, 2 };

int[,] lists = new int[4, 4] {  list1 ,  list2 ,  list3 ,  list4  };

Я не могу заставить его работать, и поэтому мне интересно, если я подхожу к этому неправильно.

Я пытаюсь создать какой-то метод создания длинного списка значений, чтобы я мог обрабатывать их в определенном порядке, несколько раз. Что-то вроде,

int[,] lists = new int[90,4] { list1, list1, list3, list1, list2, (and so on)};

for (int i = 0; i < 90; ++i) {
   doStuff(lists[i]);
}

и передать массивы в doStuff() по порядку. Я иду по этому поводу совершенно неправильно, или я что-то упустил для создания массива массивов?

4b9b3361

Ответ 1

Что вам нужно сделать, так это:

int[] list1 = new int[4] { 1, 2, 3, 4};
int[] list2 = new int[4] { 5, 6, 7, 8};
int[] list3 = new int[4] { 1, 3, 2, 1 };
int[] list4 = new int[4] { 5, 4, 3, 2 };

int[][] lists = new int[][] {  list1 ,  list2 ,  list3 ,  list4  };

Другой альтернативой может быть создание типа List<int[]>:

List<int[]> data=new List<int[]>(){list1,list2,list3,list4};

Ответ 2

Я думаю, что вы можете искать Jagged Arrays, которые отличаются от многомерных массивов (как вы используете в своем примере) в С#. Преобразование массивов в ваши объявления в неровные массивы должно заставить его работать. Тем не менее, вам все равно нужно использовать две петли для перебора всех элементов в 2D-зубчатом массиве.

Ответ 3

Проблема в том, что вы пытаетесь определить элементы в списках для нескольких списков (а не несколько ints, как определено). Вы должны определять такие списки.

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

Вы также можете сделать

int[] list1 = new int[4] { 1, 2, 3, 4};
int[] list2 = new int[4] { 5, 6, 7, 8};
int[] list3 = new int[4] { 1, 3, 2, 1 };
int[] list4 = new int[4] { 5, 4, 3, 2 };

int[,] lists = new int[4,4] {
 {list1[0],list1[1],list1[2],list1[3]},
 {list2[0],list2[1],list2[2],list2[3]},
 etc...};