7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс

7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс

^ 7.2. Массивы как наследники класса Array
Одномерные массивы наследуют из класса Array несколько параметров и много способов, упрощающих работу с массивами.

Посреди параметров следует сначала именовать свойство int Length – целочисленное (32 бита) значение, определяющее полное 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс количество частей экземпляра массива (изменять его нельзя). Это свойство неподменно в способах, параметрами которых служат ссылки на массивы. 2-ое из нужных параметров – int Rank – размерность (число измерений) массива.

Способы класса Array 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс позволяют решать многие типовые задачки обработки массивов. Вот некие из статических способов, используемые к одномерным массивам:

static int BinarySearch() – бинарный поиск в упорядоченном массиве; итог выполнения – индекс соответственного условию поиска элемента либо отрицательное число, если 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс элемента с разыскиваемым значением в массиве нет;

static void Сlear() – позволяет очистить (обнулить, присвоить значение пробелов либо значение null) все элементы массива либо обозначенный параметрами интервал его частей;

static void Copy 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс () – копирование части массива либо всего массива в другой массив;

static int IndexOf() – возвращает меньший индекс (малый номер) элемента, значение которого совпадает с прототипом;

static int LastIndexOf() – возвращает последний индекс (наибольший номер) элемента, значение 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс которого совпадает с прототипом;

static void Reverse() – меняет на оборотный порядок частей в массиве;

static void Sort() – делает сортировку частей массива.

Необязательные характеристики этого способа позволяют найти правило упорядочения. По дефлоту арифметические 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс массивы сортируются в порядке возрастания значений частей. Строчки упорядочиваются лексикографически.

Нестатические способы (способы объектов) класса Array:

object Clone() – получение четкой копии того массива-объекта, к которому применён способ. Возвращает ссылку 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс на новый массив (на копию), всегда имеющую тип оbject;

void CopyTo(Array, ind) – в массив Array копируются элементы вызывающего массива, начиная с индекса ind;

int GetLength() – возвращает размер массива (число частей) по обозначенному 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс аргументом измерению (номера измерений от нуля);

int GetUpperBound() – возвращает верхнюю границу индекса массива по обозначенному аргументом измерению;

object GetValue() – возвращает значение обозначенного параметром элемента массива;

void SetValue() – присваивает значение обозначенному 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс параметром элементу.

Последующая программка иллюстрирует применение способов Clone(), Sort(), Reverse().

// 07_04.cs массивы - способы класса Array

using System;

class Program

{

static void Main()

{

char[ ] hi = { '1', 'A', '2', 'B', '3', 'C', '4', 'D', '5', 'E', };

char[ ] hiNew = (char[ ])hi.Clone( ); // копирование

Array 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс.Sort(hiNew); // сортировка

Console.Write("Сортировка: ");

foreach (char ch in hiNew)

Console.Write( ch);

Console.WriteLine();

Array.Reverse(hiNew); // реверсирование

Console.Write("Реверсирование: ");

foreach (char ch in hiNew)

Console.Write(ch);

Console.WriteLine();

Console.Write("Начальный 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс массив: ");

foreach (char ch in hi)

Console.Write("" + ch);

Console.WriteLine();

}

}


Итог выполнения программки:

Сортировка: 12345ABCDE

Реверсирование: EDCBA54321

Начальный массив: 1A2B3C4D5E


В программке определён и инициализирован символьный 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс массив и адресующая его ссылка hi. Потом определена ссылка hiNew, и сотворена копия массива при помощи способа Clone(), который применён к объекту, адресованному ссылкой hi. Потому что способ Clone() возвращает ссылку на базисный класс 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс object, то выполнено очевидное приведение типов (char []). Только так можно присвоить итог ссылке hiNew. Способом Array.Sort() выполнена сортировка массива, связанного со ссылкой hiNew. Элементы упорядочены по возрастанию целочисленных значений кодов 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс знаков. Дальше выводятся отсортированный массив и выполнена его обработка способом Reverse(). Направьте внимание, что начальный массив остаётся без конфигураций.
^ 7.3. Виды массивов и массивы многомерные
Размерностью массива именуют количество индексов, которое нужно для 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс получения доступа к отдельному элементу массива.

Рассмотренные нами одномерные массивы являются личным случаем всего контраста массивов, которые можно использовать в C#. Для этих массивов размерность равна 1, а размер одномерного массива определяется числом 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс вероятных значений индекса.

В общем случае тип массива объявляется при помощи конструкции:

тип_не_массива спецификаторы_размерностей

Тут тип_не_массива это один из последующих типов:

тип_значения

тип_класса

тип_интерфейса

тип_делегата


спецификатор размерности - это 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс [ ] либо [разделители_размеров];

разделитель_размеров это запятая. Количество запятых на 1 меньше соответственной размерности массива.

Спецификаторы размерностей располагаются попорядку в подходящем количестве после типа_не_массива. Разглядим случай, когда спецификатор размерности один. К примеру 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс:

type[R] – тип одномерного массива с R элементами типа type.

Необходимыми личными вариантами типов массивов с одним спецификатором размерности не считая типов одномерных массивов являются "прямоугольные" типы массивов, другими словами двумерные (матрицы), трехмерные 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс («параллелепипеды») и т.д. Конкретно такие массивы обычно принято именовать многомерными массивами. Примеры:

int [,] dots; //ссылка на двумерный массив

byte [,,] bits; //ссылка на трёхмерный массив

Для определения объекта – определенного экземпляра типа многомерных 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс массивов употребляется выражение с операцией new

new тип_не_массива [d1,d2, d3 …] инициализатор

Тут di – размер - количество частей по соответственному измерению. Инициализатор представляет собой вложение конструкций

{список_инициализаторов}.

Элементами такового перечня в свою очередь служат 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс заключенные в фигурные скобки списки инициализаторов. Глубина вложения соответствует размерности массива. Размерность массива (его ранг) можно получить при помощи нестатического характеристики Rank.

Пример определения с внедрением инициализации матрицы (двумерного массива) с размерами 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс 4 на 2:

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

Как и для одномерных массивов при наличии инициализатора конструкцию new int[4,2] можно опустить.

Потому что размеры объектов-массивов задаются выражениями, в которые могут заходить переменные 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс, то допустимы многомерные массивы с динамически определяемыми размерами. В качестве примера разглядим программку, формирующую единичную матрицу, размеры которой вводит юзер с клавиатуры:

// 07_05.cs - двумерный массив - единичная матрица

using System;

class Program

{

static void Main()

{

int size 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс;

do Console.Write("size = ");

while (!int.TryParse(Console.ReadLine(), out size) || size < 1);

int[,] one = new int[size, size];

for (int i = 0; i < size; i++, Console.WriteLine())

for (int j = 0; j < size; j 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс++)

{

if (i == j) one[i, j] = 1;

Console.Write(one[i, j] + "\t");

}

foreach (int mem in one)

Console.Write(mem+" ");

Console.WriteLine();

Console.WriteLine("one.Length = " + one.Length);

Console.WriteLine("one 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс.Rank = " + one.Rank);

}

}

Итог выполнения программки:

size = 4

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

one.Length = 16

one.Rank = 2

В программке формируется двумерный массив (экземпляр массивов типа int[,]), размеры которого определены переменной size. Значение size вводит юзер. По дефлоту все элементы массива 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс получают нулевое значение. Во вложенных циклах диагональным элементам присвоены единичные значения, и выводятся значения всех частей. Направьте внимание, как в заголовке наружного цикла for употребляется воззвание к способу Console.WriteLine( ) для 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс перехода на новейшую строчку при выводе. Дальше иллюстрируется применение цикла foreach к многомерному массиву. Перебор значений массива, представляющего матрицу, производится по строчкам. (Резвее меняется правый индекс.)

В конце программки выведено значение 7.2. Массивы как наследники класса Array - В. В. Подбельский Язык C#. Базовый курс характеристики one.Length – это полное количество частей в массиве и значение ранга массива – ранг равен двум.


72-massivi-kak-nasledniki-klassa-array-v-v-podbelskij-yazik-c-bazovij-kurs.html
72-metodicheskaya-rabota-otchyot-po-itogam-samoobsledovaniya-gosudarstvennogo-byudzhetnogo-obrazovatelnogo-uchrezhdeniya.html
72-monitoring-predostavleniya-municipalnih-uslug-naseleniyu-otchet-glavi-municipalnogo-obrazovaniya-g-sayanogorsk-l-m-bikova.html