Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
20.05.2015
Размер:
271.36 Кб
Скачать

Класс Array

Для более детального понимания особенностей использования массивов в C# необходимо рассмотреть специализированный класс, реализующий функции массива. Как уже упоминалось ранее, все типы данных в C# являются классами, для которых в качестве базового выступает класс Object. Класс Array - не исключение. Он реализует все базовые свойства классов и является предком для всех типов массивов, к которым мы привыкли в языке C++ и синтаксис описания которых был приведен выше. То, что класс Array является потомком класса Object, кажется на первый взгляд малоинтересным фактом, однако на самом деле говорит о многом. В частности, благодаря этому в классе Array оказывается определено множество разнообразных операций, таких как копирование, поиск, обращение, сортировки и т. д.

Ниже приведены наиболее интересные методы класса Array

BinarySearch()

Поиск элементов в одномерном отсортированном массиве.

Sort()

Сортировка элементов одномерного массива.

Clear()

Очистка элементов массива в заданном диапазоне индексов.

CopyTo()

Копирование элементов исходного массива в массив назначения.

GetLength(), Length

Определение количества элементов в указанном измерении массива.

GetLowerBound()

Определение нижней границы массива.

GetUpperBound()

Определение верхней границы массива.

GetValue()

Возвращает значение указанного индекса для массива.

SetValue()

Устанавливает значение указанного индекса для массива.

Reverse()

Расставляет элементы одномерного массива в обратном порядке.

Rank

Определение количества измерений указанного массива.

Рассмотрим пример использования класса Array. Для этого создадим массив и обеспечим возможность поиска в нем элементов.

Объявим массив myArray как статический член класса Page, состоящий из шести элементов типа int:

static Array myArray = Array.CreateInstance(typeof(Int32), 6);

Разместим на форме элементы TextBox и Button, которым присвоим имена tb_value и btn_find соответственно, как показано на рис. 3.3.

Рис. 3.3.Размещение на форме элементов TextBox и Button

В обработчик процедуры нажатия на кнопку введем следующий код, заполняющий массив случайными числами, сортирующий его и осуществляющий поиск введенного в текстовое поле элемента. Код процедуры нажатия на кнопку приведен ниже.

protected void btn_find_Click(object sender, EventArgs e)

{

Random rnd = new Random();

Response.Write("Исходный массив <br/>");

for (int i = myArray.GetLowerBound(0); i <=

myArray.GetUpperBound(0); i++)

{

myArray.SetValue(rnd.Next(1, 10), i);

Response.Write(myArray.GetValue(i) + "\t");

}

Response.Write("<br/>");

Array.Sort(myArray);

Response.Write("После сортировки:<br/>");

for (int i = myArray.GetLowerBound(0); i <=

myArray.GetUpperBound(0); i++)

{

Response.Write(myArray.GetValue(i) + "\t");

}

object o = Convert.ToInt32(tb_value.Text);

int findIndex = Array.BinarySearch(myArray, o);

if (findIndex<0)

{

Response.Write("<br/>Элемент не найден");

}

else

{

Response.Write("<br/>Элемент найден в позиции <b>"+findIndex.

ToString()+"</b>");

}

}

Пример работы программы в результате выполнения приведенного выше кода представлен на рис. 3.4.

Рис. 3.4.Результат работы программы заполнения, сортировки и поиска элементов массива

Как видно, работать с массивами в C# достаточно просто, в особенности учитывая довольно большие возможности класса Array.

Соседние файлы в папке дополн_матерС#