Базовый класс System.Array

Все классы-массивы являются потомками класса Array из библиотеки FCL (статическом компоненте Framework.Net.) Помимо наследования свойств и методов класса Object и вышеперечисленных интерфейсов, класс Array имеет довольно большое число собственных методов и свойств. Благодаря такому мощному родителю, над массивами определены самые разнообразные операции - копирование, поиск, обращение, сортировка, получение различных характеристик. Массивы можно рассматривать как коллекции и устраивать циклы foreach для перебора всех элементов.

 

Таблица 1.3 - Свойства класса Array

Свойство Родитель Описание
IsFixedSize Интерфейс IList True, если массив статический
Length   Число элементов массива
Rank   Размерность массива

 

Таблица 1.4 - Статические методы класса Array

Метод Описание
BinarySearch() Двоичный поиск.
Clear() Выполняет начальную инициализацию элементов. В зависимости от типа элементов устанавливает значение 0 для арифметического типа, false - для логического типа, Null для ссылок, "" - для строк.
CopyTo() Копирование части или всего массива в другой массив. Описание и примеры даны в тексте
GetLength() Используется для определения количества элементов в указанном измерении массива
IndexOf() Индекс первого вхождения образца в массив. Описание и примеры даны в тексте
LastIndexOf() Индекс последнего вхождения образца в массив. Описание и примеры даны в тексте
Reverse() Обращение одномерного массива.
Sort() Сортировка одномерного массива встроенных типов данных.
GetValue() SetValue() Возвращает или устанавливает значение указанного индекса для массива.
GetUpperBound() GetLowerBound() Используется для определения нижней или верхней границы выбранного измерения массива.

 

// Программа 1. Применение методов класса Array

public static int Main(string[] args) {

string[]firstNames={"Саша", "Маша", "Олег", "Света", "Игорь"};

Console.WriteLine("Here is the array:");

for(int i=0; i< firstNames.Length; i++)

Console.WriteLine(firstNames[i]+"\t");

Console.WriteLine("\n");

Array.Reverse(firstNames);

for(int i=0; i< firstNames.Length; i++)

Console.WriteLine(firstNames[i]+"\t");

Console.WriteLine("\n");

Console.WriteLine("Cleared out all but one…");

Array.Clear(firstNames,1,4);

for(int i=0; i< firstNames.Length; i++)

Console.WriteLine(firstNames[i]+"\t\n");

return 0;

}

 

В следующей процедуре, формальный аргумент которой будет принадлежать родителю всех классов-массивов, можно передавать массив любого класса в качестве фактического аргумента:

 

// Программа 2. Принение методов класса Array

public static void PrintAr(string name, Array A) {

Console.WriteLine(name);

switch (A.Rank) {

case 1:

for(int i = 0; i<A.GetLength(0);i++)

Console.Write("\t" + name + "[{0}]={1}", i, A.GetValue(i));

Console.WriteLine();

break;

case 2:

for(int i = 0; i<A.GetLength(0);i++) {

for(int j = 0; j<A.GetLength(1);j++)

Console.Write("\t" + name + "[{0},{1}]={2}", i,j, A.GetValue(i,j));

Console.WriteLine();

}

break;

default: break;

}}

 

Примеры различных операций, доступных при работе с массивами, благодаря наследованию от класса Array:

 

// Программа 3. Применение методов класса Array

public void TestCollection() { //операции над массивами

int nc = 7;

int[] col1 = new int[nc], col2 = new int[nc];

double[] col3 = new double[nc];

int[,] col4 = new int[2,2];


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: