Неверное количество индексов в массиве

103
04 августа 2019, 02:50

Задача из двумерного массива вытаскивать его элементы в виде массивов.

//объявили двумерный массив.
int[,] array2d = {{1,2,3},{2,3,4},{3,4,5}};
//надо сохранить первый элемент {1,2,3} в переменную.
int[] array1d = array2d[0];

И получаем следующую ошибку:

Неверное число индексов в массиве[] требуется 2

Я так понимаю обязательно надо указывать оба индекса.

Вопрос: Как в таком случае получить любой подмассив из двумерного массива по номеру элемента?

Answer 1

Как уже написали в комментариях, для этой цели проще использовать массив массивов, а не многомерный массив:

int[][] array2d = new int[][] {new[]{1,2,3}, new[]{2,3,4}, new[]{3,4,5}};
int[] array1d = array2d[0];

Если нужно вытащить строку именно 2D-массива, то, боюсь, удобного способа нет. Неудобные способы перечислены в похожем вопросе на английском: How to get a complete row or column from 2D array in C#.

В частности, @ShimonDoodkin предлагает метод-расширение:

public static class MyExtensions
{
    public static T[] GetRow<T>(this T[,] array, int wanted_row)
    {
        int l = array.GetLength(1);
        T[] row = new T[l];
        for(int i=0; i<l; i++)
        {
          row[i] = array[wanted_row,i];
        }
        return row;
    }
}  

, который можно будет использовать так:

int[,] array2d = {{1,2,3},{2,3,4},{3,4,5}};
//надо сохранить первый элемент {1,2,3} в переменную.
int[] array1d = array2d.GetRow(0);
READ ALSO
Сериализация в C# объектов, имеющих взаимные ссылки

Сериализация в C# объектов, имеющих взаимные ссылки

Подскажите, пожалуйста, как правильно сериализовывать/десериализовывать объекты в XML, имеющие взаимные ссылкиНапример, есть классы Car и Garage

84
Запрос данных из двух таблиц и вывод через while

Запрос данных из двух таблиц и вывод через while

Есть две таблицы comments и usersОни связаны между собой

127
Contact form 7 добавление кода PHP

Contact form 7 добавление кода PHP

На сайте под управлением Wordpress есть форма сделана c помощью плагина Contact Form 7Как добавить во входящий имейл из формы еще функцию get_page_link() Мне...

113