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

Зубчатые массивы в C#: объявление, инициализация и доступ

Зубчатые массивы в C#

В этом уроке мы изучим зубчатые массивы C#. Научимся объявлять, инициализировать и получать доступ к элементам зубчатого массива на примерах.

В C# зубчатый массив состоит из нескольких массивов в качестве своих элементов. Однако, в отличие от многомерных массивов, каждый массив внутри зубчатого может иметь разный размер.

Перед изучением зубчатых массивов убедитесь, что знаете:


Объявление зубчатого массива

Синтаксис объявления:

dataType[ ][ ] nameOfArray = new dataType[rows][ ];

Пример:

// объявление зубчатого массива
int[ ][ ] jaggedArray = new int[2][ ];

Здесь:

Так как каждый элемент зубчатого массива — тоже массив, можно задать размер каждого внутреннего массива. Например:

// размер первого массива = 3
jaggedArray[0] = new int[3];
// размер второго массива = 2
jaggedArray[1] = new int[2];

Инициализация зубчатого массива

Существует несколько способов инициализации.

1. Через индексы

// инициализация первого массива
jaggedArray[0][0] = 1;
jaggedArray[0][1] = 3;
jaggedArray[0][2] = 5;
// инициализация второго массива
jaggedArray[1][0] = 2;
jaggedArray[1][1] = 4;

Индекс в первых скобках — индекс элемента зубчатого массива; во вторых — индекс внутри внутреннего массива.

2. Инициализация без предварительного задания размеров

// объявление строкового зубчатого массива
int[ ][ ] jaggedArray = new int[2] [ ];
// инициализация каждого массива
jaggedArray[0] = new int[] {1, 3, 5};
jaggedArray[1] = new int[] {2, 4};

3. Инициализация при объявлении

int[ ][ ] jaggedArray = { new int[ ] {10, 20, 30}, new int[ ] {11, 22}, new int[ ] {88, 99} };

Доступ к элементам зубчатого массива

Доступ по индексам:

// первый элемент второго массива
jaggedArray[1][0];
// второй элемент второго массива
jaggedArray[1][1];
// второй элемент первого массива
jaggedArray[0][1];

Пример: Зубчатый массив в C#

using System;
namespace JaggedArray {
    class Program {
        static void Main(string[] args) {
            // создание зубчатого массива
            int[ ][ ] jaggedArray = { new int[] {1, 3, 5}, new int[] {2, 4}, };
            // вывод элементов
            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

Внутри зубчатого массива:


Перебор зубчатого массива

В C# можно использовать циклы для перебора каждого элемента.

using System;
namespace JaggedArray {
    class Program {
        static void Main(string[] args) {
            // объявление зубчатого массива
            int[][] jaggedArray = new int[2][];
            // установка размеров элементов
            jaggedArray[0] = new int[3];
            jaggedArray[1] = new int[2];
            // инициализация первого массива
            jaggedArray[0][0] = 1;
            jaggedArray[0][1] = 3;
            jaggedArray[0][2] = 5;
            // инициализация второго массива
            jaggedArray[1][0] = 2;
            jaggedArray[1][1] = 2;
            // внешний цикл
            for (int i = 0; i < jaggedArray.Length; i++) {
                Console.Write("Element "+ i +": ");
                // внутренний цикл
                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. Внешний цикл

2. Внутренний цикл


Зубчатый массив с многомерными массивами

В C# элементы зубчатого массива могут быть многомерными массивами.

int[ ][ , ] jaggedArrayTwoD = new int[2][ , ] {
    new int[,] { {1, 8}, {6, 7} },
    new int[,] { {0, 3}, {5, 6}, {9, 10} }
};

Каждый элемент зубчатого массива — многомерный массив:

Пример:

using System;
namespace JaggedArray {
    class Program {
        static void Main(string[] args) {
            // объявление и инициализация зубчатого массива с 2D массивами
            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]:

Язык C

  1. Массивы в C#: объявление, инициализация и операции
  2. Как передавать массивы в функции в C++: практическое руководство
  3. Техники копирования массивов в Java: подробное руководство
  4. Массивы в C++: объявление, инициализация и работа с указателями
  5. Динамическое выделение массивов в C++: практическое руководство с примерами кода
  6. Коллекции в C#: практическое руководство с реальными примерами
  7. Создание массива объектов в Java: пошаговое руководство
  8. MATLAB: Мастерство работы с многомерными и специальными массивами
  9. Продвинутые методы инспекции BGA для надежной электроники
  10. Передовый наносенсорный массив E-Tongue для точного детектирования биомолекул в жидкостях