Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Клас System.Array




 

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

 

Таблиця 6.1

Основні елементи класу Array

 

Елемент Вигляд Опис
Length Властивість Кількість елементів масиву (по всіх размерностям)
Rank Властивість Кількість размерностей масиву
BinarySearch Статичний метод Двійковий пошук у відсортованому масиві
Clear Статичний метод Привласнення елементам масиву значень за умовчанням
Copy Статичний метод Копіювання заданого діапазону елементів одного масиву в інший масив
CopyTo Метод Копіювання всіх елементів поточного одновимірного масиву в інший одновимірний масив
GetValue Метод Набуття значення елементу масиву
IndexOf Статичний метод Пошук першого входження елементу в одновимірний масив
LastIndexOf Статичний метод Пошук останнього входження елементу в одновимірний масив
Reverse Статичний метод Зміна порядку проходження елементів на зворотний
SetValue Метод Установка значення елементу масиву
Sort Статичний метод Впорядковування елементів одновимірного масиву

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

Лістинг 6.3. Використання методів класу Array з одновимірним масивом

using System;

namespace ConsoleApplication1

{

class Classl

{

static void Main()

{

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

PrintArray("Початковий масив:", a);

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

Array.Sort(a);

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

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

}

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();

}

}

}

 

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

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

Результат роботи програми:

Початковий масив:

24 50 18 3 16 -7 9 -1

 

Впорядкований масив:

-7 -1 3 9 16 18 24 50

Для того, щоб застосовувати метод 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();

}

У лістингу 6.4 продемонстровано застосування елементів класу Array при роботі із ступінчастим масивом.

 

Лістинг 6.4. Використання методів класу Arra y зі ступінчастим масивом

using System;

namespace ConsoleApplication1

{

class Classl

{

static void Main()

{

int[][] a = new int[3][];

a[0] = new int [5] {24, 50, 18, 3, 16};

a[1] = new int [3] {7, 9,-1};

a[2] = new int [4] {6, 15, 3, 1 };

Console.WriteLine("Початковий масив:");

 

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

{

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

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

Console.WriteLine();

}

Console.WriteLine(Array.IndexOf(a[0], 18));

}

}

}

 

Зверніть увагу на те, як усередині циклу по рядках визнається довжина кожного масиву. Результат роботи програми:

 

Початковий масив:

         
    -1    
         



Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 506; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.