Зубчатый массив С#
Зубчатый массив C#
В этом уроке мы узнаем о зубчатом массиве C#. Мы научимся объявлять, инициализировать и получать доступ к зубчатому массиву с помощью примеров.
В C# зубчатый массив состоит из нескольких массивов в качестве элемента. Однако, в отличие от многомерных массивов, каждый массив внутри зубчатого массива может иметь разный размер.
Прежде чем вы узнаете о зубчатом массиве, обязательно узнайте о
- Массивы C#
- Многомерные массивы C#
Объявление зубчатого массива C#
Вот синтаксис для объявления зубчатого массива в C#.
dataType[ ][ ] nameOfArray = new dataType[rows][ ];
Давайте посмотрим на пример,
// declare jagged array
int[ ][ ] jaggedArray = new int[2][ ];
Здесь,
int
- тип данных массива[][]
- представляет зубчатый массивjaggedArray
- имя зубчатого массива[2][]
- представляет количество элементов (массивов) внутри зубчатого массива
Поскольку мы знаем, что каждый элемент зубчатого массива также является массивом, мы можем установить размер отдельного массива. Например,
// set size of the first array as 3
jaggedArray[0] = new int[3];
// set size of second array as 2
jaggedArray[1] = new int[2];
<час> Инициализация зубчатого массива
Существуют разные способы инициализации зубчатого массива. Например,
<сильный>1. Использование порядкового номера
Как только мы объявим зубчатый массив, мы можем использовать номер индекса для его инициализации. Например,
// initialize the first array
jaggedArray[0][0] = 1;
jaggedArray[0][1] = 3;
jaggedArray[0][2] = 5;
// initialize the second array
jaggedArray[1][0] = 2;
jaggedArray[1][1] = 4;
Здесь
- индекс в первой квадратной скобке представляет собой индекс зубчатого элемента массива
- индекс во второй квадратной скобке представляет собой индекс элемента внутри каждого элемента зубчатого массива
<сильный>2. Инициализировать без установки размера элементов массива
// declaring string jagged array
int[ ][ ] jaggedArray = new int[2] [ ];
// initialize each array
jaggedArray[0] = new int[] {1, 3, 5};
jaggedArray[1] = new int[] {2, 4};
<сильный>3. Инициализировать при объявлении Jagged Array
int[ ][ ] jaggedArray = {
new int[ ] {10, 20, 30},
new int[ ] {11, 22},
new int[ ] {88, 99}
};
<час> Доступ к элементам зубчатого массива
Мы можем получить доступ к элементам зубчатого массива, используя номер индекса. Например,
// access first element of second array
jaggedArray[1][0];
// access second element of the second array
jaggedArray[1][1];
// access second element of the first array
jaggedArray[0][1];
<час> Пример:зубчатый массив C#
using System;
namespace JaggedArray {
class Program {
static void Main(string[] args) {
// create a jagged array
int[ ][ ] jaggedArray = {
new int[] {1, 3, 5},
new int[] {2, 4},
};
// print elements of jagged array
Console.WriteLine("jaggedArray[1][0]: " + jaggedArray[1][0]);
Console.WriteLine("jaggedArray[1][1]: " + jaggedArray[1][1]);
Console.WriteLine("jaggedArray[0][2]: " + jaggedArray[0][2]);
Console.ReadLine();
}
}
}
Вывод
jaggedArray[1][0]: 2 jaggedArray[1][1]: 4 jaggedArray[0][2]: 5
Здесь, внутри зубчатого массива,
jaggedArray[1][0]
- первый элемент второго массиваjaggedArray[1][1]
- второй элемент второго массиваjaggedArray[0][2]
- третий элемент первого массива
Перебор зубчатого массива
В C# мы можем использовать циклы для перебора каждого элемента зубчатого массива. Например,
using System;
namespace JaggedArray {
class Program {
static void Main(string[] args) {
// declare a jagged array
int[][] jaggedArray = new int[2][];
// set size of Jagged Array Elements
jaggedArray[0] = new int[3];
jaggedArray[1] = new int[2];
// initialize the first array
jaggedArray[0][0] = 1;
jaggedArray[0][1] = 3;
jaggedArray[0][2] = 5;
// initialize the second array
jaggedArray[1][0] = 2;
jaggedArray[1][1] = 2;
// outer for loop
for (int i = 0; i < jaggedArray.Length; i++) {
Console.Write("Element "+ i +": ");
// inner for loop
for (int j = 0; j < jaggedArray[i].Length; j++) {
Console.Write(jaggedArray[i][j] + " ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
Вывод
Element 0: 1 3 5 Element 1: 2 2
В приведенном выше примере мы использовали вложенный цикл for для перебора зубчатого массива. Здесь
<сильный>1. Внешний цикл for
- для доступа к элементам (массивам) зубчатого массива
jaggedArray.Length
- дает размер зубчатого массива
<сильный>2. Внутренний цикл for
- для доступа к элементам отдельного массива внутри зубчатого массива.
jaggedArray[i].Length
- дает размер элементовith
массив внутри зубчатого массива
Неровный массив с многомерным массивом
В C# мы также можем использовать многомерные массивы в качестве элементов зубчатого массива. Например,
int[ ][ , ] jaggedArrayTwoD = new int[2][ , ] {
new int[,] { {1, 8}, {6, 7} },
new int[,] { {0, 3}, {5, 6}, {9, 10} }
};
Здесь каждый элемент зубчатого массива представляет собой многомерный массив:
new int[,] { {1, 8}, {6, 7} }
- 2D-массив из 2 элементовnew int[ , ] { {0, 3}, {5, 6}, {9, 10} }
- 2D-массив из 3 элементов
Давайте посмотрим на пример,
using System;
namespace JaggedArray {
class Program {
static void Main(string[] args) {
// declare and initialize jagged array with 2D array
int[][,] jaggedArray = new int[3][ , ] {
new int[ , ] { {1, 8}, {6, 7} },
new int[ , ] { {0, 3}, {5, 6}, {9, 10} },
new int[ , ] { {11, 23}, {100, 88}, {0, 10} }
};
Console.WriteLine(jaggedArray[0][0, 1]);
Console.WriteLine(jaggedArray[1][2, 1]);
Console.WriteLine(jaggedArray[2][1, 0]);
Console.ReadLine();
}
}
}
Вывод
8 10 100
В приведенном выше примере обратите внимание на код
jaggedArray[0][0, 1]
Здесь
[0]
- представляет первый элемент (2D-массив) зубчатого массива[0, 1]
- представляет второй элемент первого массива внутри двумерного массива
Язык C
- С# Массивы
- Передача массива в функцию в программировании на C++
- Массивы копирования Java
- Массивы в C++ | Объявить | Инициализировать | Указатель на примеры массивов
- C++ динамическое выделение массивов с примером
- Учебное пособие по коллекциям C# с примерами
- Как создать массив объектов в Java
- MATLAB — Массивы
- Методы проверки массива шариковой решетки
- Массив наносенсоров E-Tongue