Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_3_C#.doc
Скачиваний:
2
Добавлен:
18.04.2019
Размер:
436.74 Кб
Скачать

1.4. Клас System.Array

Раніше вже говорилося, що всі масиви в С# побудовані на основі базового класу Array, що містить корисні для програміста властивості й методи, частина з яких перераховані в табл. 1.

Таблиця 1. Основні елементи класу Array

Елемент

Вид

Опис

Length

Властивість

Кількість елементів масиву (по всім розмірностям)

Rank

Властивість

Кількість розмірностей масиву

BinarySearch

Статичний метод

Двійковий пошук у відсортованому масиві

Clear

Статичний метод

Присвоювання елементам масиву значень за замовчуванням

Copy

Статичний метод

Копіювання заданого діапазону елементів

одного масиву в інший масив

CopyTo

Метод

Копіювання всіх елементів поточного одномірного масиву в інший одномірний масив

GetValue

Метод

Одержання значення елемента масиву

IndexOf

Статичний метод

Пошук першого входження елемента в одномірний масив

LastlndexOf

Статичний метод

Пошук останнього входження елемента в одномірний масив

Reverse

Статичний метод

Зміна порядку проходження елементів на зворотний

SetValue

Метод

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

Sort

Статичний метод

Впорядкування елементів одномірного масиву

Властивість Length дозволяє реалізовувати алгоритми, які будуть працювати з масивами різної довжини або, наприклад, зі східчастим масивом. Використання цієї властивості замість явного завдання розмірності виключає можливість виходу індексу за межі масиву. У прикладі 2 продемонстроване застосування елементів класу Array при роботі з одномірним масивом.

Методи Sort, IndexOf й BinarySearch є статичними, тому до них звертаються через ім'я класу, а не екземпляра, і передають у них ім'я масиву. Двійковий пошук можна застосовувати тільки для впорядкованих масивів. Він виконується набагато швидше, ніж лінійний пошук, реалізований у методі IndexOf. У прикладі 2 пошук елемента, що має значення 18, виконується обома цими способами.

Приклад 2. Використання класу System.Array

using System;

namespace ConsoleApplication1

{

class Classl

{

static void Main()

{

int[] a = { 24, 50, 18, 3, 16, -7, 9, -1 };

PrintArray("Вихідний масив:", a);

Console.Write(Array.IndexOf(a, 18));

Array.Sort(a);

PrintArray("Упорядкований масив:", a);

Console.Write(Array.BinarySearch(a, 18));

Console.ReadLine();

}

public static void PrintArray(string header, int[] a)

{

Console.WriteLine(header);

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

Console.Write("\t" + a[i]);

Console.WriteLine();

}

}

}

У класі Classl описаний допоміжний статичний метод PrintArray, призначений для виведення масиву на екран. У нього передаються два параметри: рядок заголовка header і масив. Кількість елементів масиву визначається усередині методу за допомогою властивості Length. Таким чином, цей метод можна використати для виведення будь-якого цілочисельного одномірного масиву.

Для того щоб застосовувати метод PrintArray до масивів, що складаються із елементів іншого типу, можна описати його другий параметр як Array. Правда, при цьому значення елемента масиву доведеться одержувати за допомогою методу GetValue, оскільки доступ по індексу для класу Array не передбачений. Узагальнений метод виклику масиву виглядає так:

public static void PrintArray(string header, Array a)

{

Console.WriteLine(header);

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

Console.Write("\t" + a.GetValue(i));

Console.WriteLine();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]