Клас 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 про = Convert.ToInt32(tb_value.Text); int findIndex = Array.BinarySearch(myArray, про); if (findIndex<0) { Response.Write("<br/>Элемент не знайдений"); } else { Response.Write("<br/>Элемент знайдений у позиції <b>"+findIndex. ToString()+"</b>"); }}

Приклад роботи програми в результаті виконання приведеної вище коди представлений на рис. 3.4.

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

Як видно, працювати з масивами в C# досить просто, особливо враховуючи досить великі можливості класу Array.


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



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