Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Многомерные массивы в C#: двумерные массивы с примерами кода

Многомерные массивы в C#

В этом уроке мы изучим многомерные массивы C#, сосредоточившись на двумерных примерах с понятными фрагментами кода.

Перед изучением многомерных массивов повторите одномерные массивы C#.

В многомерном массиве каждый элемент сам является массивом. Например:

int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };

Здесь x — двумерный массив, содержащий строки {1, 2, 3} и {3, 4, 5}. Каждая строка — массив из трёх элементов.


Двумерный массив в C#

Двумерный массив — это таблица строк и столбцов. Элементы массива — одномерные массивы.

Многомерные массивы в C#: двумерные массивы с примерами кода

На изображении строки {1, 2, 3} и {3, 4, 5} представляют две строки 2D массива.

1. Объявление

Объявление 2D массива:

int[ ] x = new int [2, 3];

Здесь x может хранить 2 строки и 3 столбца — всего 6 значений.

Примечание: Одинарная запятая в скобках ([ , ]) обозначает двумерный массив.


2. Инициализация

Можно инициализировать при объявлении:

int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };

Или указать размер и значения одновременно:

int[ ] x = new int[2, 3]{ {1, 2, 3}, {3, 4, 5} };

3. Доступ к элементам

Используйте нулевые индексы: x[row, column]. Примеры:

// 2D массив
int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
// первый элемент первой строки
x[0, 0]; // 1
// третий элемент второй строки
x[1, 2]; // 5
// третий элемент первой строки
x[0, 2]; // 3
Многомерные массивы в C#: двумерные массивы с примерами кода

Пример: C# 2D массив

using System;
namespace MultiDArray {
    class Program {
        static void Main(string[] args) {
            // инициализация 2D массива
            int[ ] numbers = {{2, 3}, {4, 5}};
            // доступ к первому элементу первой строки
            Console.WriteLine("Element at index [0, 0] : " + numbers[0, 0]);
            // доступ к первому элементу второй строки
            Console.WriteLine("Element at index [1, 0] : " + numbers[1, 0]);
        }
    }
}

Вывод

Element at index [0, 0] : 2
Element at index [1, 0] : 4

Массив numbers имеет строки {2, 3} и {4, 5}. Печатаем значения по индексам.


Изменение элементов

Присвоение нового значения индексу меняет массив:

using System;
namespace MultiDArray {
    class Program {
        static void Main(string[] args) {
            int[ ] numbers = {{2, 3}, {4, 5}};
            // старый элемент
            Console.WriteLine("Old element at index [0, 0] : " + numbers[0, 0]);
            // новое значение
            numbers[0, 0] = 222;
            // новый элемент
            Console.WriteLine("New element at index [0, 0] : " + numbers[0, 0]);
        }
    }
}

Вывод

Old element at index [0, 0] : 2
New element at index [0, 0] : 222

Значение в [0, 0] меняется с 2 на 222.


Перебор вложенными циклами

using System;
namespace MultiDArray {
    class Program {
        static void Main(string[] args) {
            int[ ] numbers = { {2, 3, 9}, {4, 5, 9} };
            for(int i = 0; i < numbers.GetLength(0); i++) {
                Console.Write("Row "+ i+": ");
                for(int j = 0; j < numbers.GetLength(1); j++) {
                    Console.Write(numbers[i, j]+" ");
                }
                Console.WriteLine();
            }
        }
    }
}

Вывод

Row 0: 2 3 9
Row 1: 4 5 9

Внешний цикл по строкам (GetLength(0)), внутренний по столбцам (GetLength(1)).

Примечание: Трёхмерный массив содержит несколько 2D массивов:

int[ , ] numbers = { { { 1, 3, 5 }, { 2, 4, 6 } }, { { 2, 4, 9 }, { 5, 7, 11 } } };

Здесь [ , ] (две запятые) обозначает 3D массив.

Язык C

  1. Коэффициенты удельного сопротивления материалов при 20°C — исчерпывающий справочник
  2. Массивы в C#: объявление, инициализация и операции
  3. Зубчатые массивы в C#: объявление, инициализация и доступ
  4. Как передавать массивы в функции в C++: практическое руководство
  5. Техники копирования массивов в Java: подробное руководство
  6. Освоение интерфейса NavigableSet в Java: навигация, сортировка и практические примеры
  7. Массивы в C++: объявление, инициализация и работа с указателями
  8. Динамическое выделение массивов в C++: практическое руководство с примерами кода
  9. Коллекции в C#: практическое руководство с реальными примерами
  10. MATLAB: Мастерство работы с многомерными и специальными массивами