русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Клас System.Array


Дата додавання: 2015-01-08; переглядів: 1026.


 

Раніше вже розповідалося, що всі масиви в С# побудовані на основі базового класу 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. Використання методів класу Array зі ступінчастим масивом

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    
 

<== попередня лекція | наступна лекція ==>
Прямокутні масиви | Клас Random


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн