Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Урок 4. Колекція List .

Методи колекції List


https : // msdn . microsoft . com / ru - ru / library / ybcx 56 wz ( v = vs .110). aspx
https://msdn.microsoft.com/ru-ru/library/6sh2ey19(v=vs.110).aspx

У багатьох додатках може знадобитися створення групи пов'язаних об'єктів і управління


ними. Існує два способи угруповання об'єктів: створити масив об'єктів і створити колекцію.
Масиви часто використовуються для створення і роботи з фіксованим числом строго
типізованих об'єктів.
Колекції надають більш гнучкий спосіб роботи з групами об'єктів. На відміну від масивів,
група об'єктів в класі може динамічно зростати і скорочуватися відповідно до потреб додатки.
Деякі колекції допускають призначення ключа будь-якого об'єкта, який додається в колекцію,
щоб в подальшому можна було швидко витягти пов'язаний з ключем об'єкт з колекції.
Пов'язані дані можуть оброблятися більш ефективно, якщо вони об'єднані в колекцію. Для
додавання, видалення і зміни або окремих елементів колекції, або діапазону елементів колекції
можна використовувати колекцію List .
Колекція List <T> представляє найпростіший список однотипних об'єктів (типу T ) ,
доступних за індексом. Підтримує методи для пошуку за списком, виконання сортування і інших
операцій зі списками.

Конструктор
Колекція є класом, тому необхідно оголосити нову колекцію перед додаванням в неї
елементів. При створенні списку не вказується кількість елементів в ньому: він створюється
порожній. Елементи в нього будуть додаватися потім.
Приклад оголошення колекції, що містить цілі числа :
List <int> myList = new List <int>();

Властивості об'єктів колекції List


Назва опис приклад и
Count Отримує число елементів, що містяться в списку int count = myList.Count();
Item [Int32] Повертає або задає елемент за вказаним індексом , як і в int x = myList [ i ];
масиві.

Деякі методи об'єктів колекції List


Загальне правило виклику методу:
ім'яСписку.НазваМетоду( параметри );
Розглянемо деякі з них і приклади застосування їх до об'єкту myList :
Методи редагування вмісту списку , його кількості :
Метод Опис Приклади використання *
Clear очищає вміст списку (видаляє всі елементи з myList.Clear () ;
колекції)
Add додає в список новий елемент myList.Add ( rnd.Next (110));
AddRange додає в список колекцію або масив
Insert вставляє в список заданий елемент на задану myList.Insert (p, w);
позицію
InsertRange додає в список колекцію або масив на List <int> myList1 = new List <int>();
for ( int i = 0; i <k; i ++)
задану позицію
{
myList1.Add (999);
}
myList.InsertRange (p, myList1);
Remove видаляє зі списку перше входження myList.Remove (max);
заданого елементу за значенням
RemoveAt видаляє зі списку заданий елемент за int p = int.Parse (textBox3.Text);
myList.RemoveAt (p);
індексом
RemoveRange видаляє зі списку діапазон елементів, int p = int.Parse (textBox3.Text);
int k = int.Parse (textBox4.Text);
починаючи з зазначеного індексу
myList.RemoveRange (p, k);

Методи зміни порядку елементів списку


Метод Опис Приклади використання *
Reverse Змінює порядок проходження елементів в myList.Reverse ();
списку або в його частині на зворотний
Sort сортує елементи списку за зростанням myList.Sort);
елементів
Методи пошуку елементів у списку та інші
Метод Опис Приклади використання *
Contains визначає, чи входить зазначений елемент в if ( myList.Contains( w ))
lblSearch.Text = " Бажаємий елемент
колекцію
є в списку ";
else
lblSearch.Text = " Шуканого
елемента немає у списку ";
IndexOf повертає індекс першого (останнього) int p = myList.IndexOf (w);
LastIndexOf входження елемента в списку
BinarySearch Виконує пошук елемента по всьому int p = myList.BinarySearch (w);
відсортовані списку і повертає індекс
елемента, відлічуваний від нуля
Count повертає кількість елементів списку int k = myList.Count ();

Max повертає максимальний елемент списку max = myList.Max ();

M in повертає мінімальний елемент списку m in = myList.M in ();

Sum повертає суму елементів списку int s = myList.Sum ();

ElementAt дає доступ до значення елемента з заданим myList.ElementAt (i)


номером
* В описаних прикладах використовуються такі позначення:
myList // обробляється список
int w ; // шуканий або доданий елемент
int p ; // номер елемента в списку
Розглянемо більш докладно деякі методи і приклади їх використання:
Додавання елементів до списку
Метод Add додає новий елемент в кінець списку .
Синтаксис :
список.Add ( item );
Параметри :
item Об'єкт типу T , що додається в кінець списку

Приклад використання :

Метод AddRange додає елементи зазначеної колекції в кінець списку .


Синтаксис :
список.AddRange ( collection );
Параметри :
collection колекція або масив , що додається в кінець списку

Приклад використання :

Вставка елементів в список


Метод Insert вставляє новий елемент в список на позицію із зазначеним індексом .
Синтаксис :
список . Insert ( item );
Параметри :
index відлічуваний від нуля індекс місця вставки нового елемента
item об'єкт типу T , якій слід вставити в список
Приклад використання :

Метод Insert Range вставляє елементи зазначеної колекції в список з позиції із зазначеним
індексом.
Синтаксис :
список.InsertRange (index , collection);
Параметри :
index відлічуваний від нуля індекс місця вставки нових елементів
collection колекція або масив , якій слід вставити в список

Приклад використання :
Видалення елементів зі списку
Метод Remove видаляє перше входження зазначеного об'єкта з переліку .
Синтаксис :
список.Remove ( item );
Параметри :
item об'єкт типу T , який необхідно видалити з колекції
Значення, що повертається :
Значення true , якщо елемент item успішно видалений, в іншому випадку - значення false .
Цей метод також повертає false , якщо елемент item не знайдений в списку.

Приклад використання :

У наступному прикладі об'єкт був видалений зі списку, якщо він був знайдений:

Метод RemoveAt видаляє елемент списку з вказаним індексом .


Синтаксис :
список.RemoveAt ( index );
Параметри :
index відлічуваний від нуля індекс

Приклад видалення зі списку всіх нульових елементів :

\
Метод Remove Range видаляє зі списку діапазон елементів: починаючи з заданого номера,
вказану кількість.
Синтаксис :
список.RemoveRange (index , count );
Параметри :
index відлічуваний від нуля індекс початку діапазону елементів, які потрібно видалити
count число видаляються елементів

Приклад видалення зі списку всіх елементів після мінімального :

Методи зміни порядку елементів списку


Метод Sort сортує елементи в усьому списку по зростанню.
синтаксис :
список Sort ();

Метод Reverse змінює порядок проходження елементів в списку або в його частині на
зворотний .
Синтаксис :
список.Reverse ();
список.Reverse (index, count);
Параметри :
index відлічуваний від нуля індекс початку діапазону, порядок елементів якого потрібно
змінити
count число елементів в діапазоні, порядок сортування в якому потрібно змінити

Приклад сортування елементів списку за спаданням :

Пошук елементів у списку


Метод Contains визначає, чи входить елемент в список.
Синтаксис :
bool res ult = список.Contains ( item );
Параметри :
item об'єкт, який потрібно знайти в списку
Значення, що повертається:
Значення true , якщо параметр item знайдений в списку ; в іншому випадку - значення false
.
Приклад використання :
Методи IndexOf і LastIndexOf виконуємо ту т пошук зазначеного об'єкта всередині
списку і повертаю т індекс його першого / останнього входження відповідно в списку або його
частини .
Синтаксис :
int x = список.IndexOf ( item );
int x = список.LastIndexOf ( item );
int x = список.IndexOf ( item, index );
int x = список.LastIndexOf ( item, index );
int x = список.IndexOf ( item, index, count );
int x = список.LastIndexOf ( item, index, count );
Параметри :
item об'єкт, який потрібно знайти в списку
index індекс (з нуля) початкової позиції пошуку
count число елементів в діапазоні, в якому виконується пошук
Значення, що повертається:
Індекс першого входження item в списку або його частини , якщо він знайдений; в іншому
випадку - -1.

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


елемента в відсортованому списку або в його частині .
Синтаксис :
int x = список.BinarySearch ( item );
Параметри :
item об'єкт, який потрібно знайти в списку
Значення, що повертається:
Відлічуваний від нуля індекс елемента item в відсортованому списку , якщо елемент
знайдений; в іншому випадку - негативне число, яке є порозрядним доповненням індексу
наступного елемента, більшого, ніж item , або, якщо більшого елемента не існує, порозрядним
доповненням значення Count .

Приклад використання :
Для визначення максимального, мінімального, суми, середнього арифметичного значень
в списку використовуються методи, аналогічні методам об'єкта класу Array : Max , Min , Sum ,
Average .
Синтаксис :
T max = список.Max ();
T min = список.Min ();
T sum = список.Sum ();
double avg = список.Average ();
Значення що повертається:
Залежить від типу елементів в списку .

Приклад використання :

Кількість елементів у списку


Кількість елементів списку можна визначити за допомогою методу Count або властивості
Count .
синтаксис :
int count = список.Count ();
int count = список.Count ;
Значення, що повертається:
Кількість елементів списку.
Приклад використання :

Методи взаємодії з масивом


Метод Опис Приклади використання *
CopyTo Копіює список або його частину в масив. myList.CopyTo (arr);

ToArray записує елементи списку в масив елементів int[] arr = myList.ToArray ();
ToList записує елементи списку в масив елементів myList = arr.ToList ();

Копіювання елементів списку до масиву


Метод ToList копіює все елементи масиву до нового списку.
Синтаксис :
список = array.ToList ();
Значення, що повертається:
Список , який містить копії елементів масиву.

Копіювання елементів списку до масиву


Метод ToArray копіює все елементи списку в новий масив.
Синтаксис :
array = список.ToArray ();
Значення, що повертається:
Масив, що містить копії записів у списку .

Метод CopyTo копіює весь список або його частину в сумісний одновимірний масив,
починаючи з першого або зазначеного елемента цільового масиву.
синтаксис :
список.CopyTo ( array );
список.CopyTo ( array , arrayIndex );
список.CopyTo ( index, array, arrayIndex, count );
параметри :
array одновимірний масив, в який копіюються елементи з переліку
index відлічуваний від нуля індекс вихідного списку , з якого починається копіювання
arrayIndex відлічуваний від нуля індекс в масиві array , який вказує початок копіювання
count число елементів для копіювання
Елементи копіюються в масив в тому ж порядку, в якому нумератор переміщається п про
списку. У двох останніх варіантах використання методу CopyTo задані елементи масиву
замінюються елементами списку, а інші елементи масиву залишаються такими, які були.

Приклад копіювання другої половини списку в другу половину масиву :

Приклад видалення мінімального елемента з масиву :

Використання оператора foreach з масивами


Оператор foreach можна застосовувати і для перебору елементів в списку . Наприклад,
наступний код виводить в ListBox всі елементи списку myList за допомогою оператора foreach :

Тут змінна x приймає по черзі значення кожного елемента списку і виводить його в ListBox
Даний фрагмент коду є аналогічним наступного:

You might also like