SlideShare a Scribd company logo
1 of 18
.NET Framework і C#
Модуль 13 Колекції
В цьому модулі:
 Поняття колекції
 Класи колекцій ArrayList, HashTable, Stack, Queue, SortedList
 Інтерфейси колекцій IList, IEnumerator, IEnumerable, ICollection,
IDictionary, IComparer, IDictionaryEnumerator
 Приклади використання класів колекцій для збереження стандартних і
користувацьких типів
2
Andriy Gladkyy
KspDevelop@gmail.com
Поняття Колекції
 Колекція – це група елементів. В .NET колекції містяться об’єкти, в
тому числі і упаковані типи значень.
 Всі класи колекцій находяться в просторі імен System.Collections.
Andriy Gladkyy
KspDevelop@gmail.com 3
System.Collections.ArrayList
 ArrayList – це клас подібний масиву але він може розширюватись.
 При поміщені в колекцію більше елементів ніж місткість колекції то
місткість колекції в два рази збільшується.
 Додання елементів в колекцію відбувається за допомогою методів Add()
AddRange()
 Місткість колекції можна зменшити до фактичної за допомогою метода
TrimToSize()
 Колекція ArrayList сприймає свої об’єкти як object. Тому в дану колекцію
можна помістити об’єкти різних типів.
 Метод GetRange() дозволяє сформувати нову колекцію зі значеннями
елементів, взятих з вказаного діапазону вхідної колекції.
 Для видалення елементів з колекції ArrayList по заданому індексу можна
за допомогою методу RemoveAt()
 Метод Sort() дозволяє сортувати колекцію по принципу, що залежить від
типу елементів
Andriy Gladkyy
KspDevelop@gmail.com 4
ArrayList arr = new ArrayList()
Andriy Gladkyy
KspDevelop@gmail.com 5
Демонстрація
System.Collections.Stack
 Тип колекції, що ідеально підходить для тимчасового розміщення
об’єктів, які після використання будуть видалені.
 Дана колекція працює за принципом LIFO (last-in-first-out).
 Елементи добавляються в колекції за допомогою метода Push();
 Витягуються за допомогою метода Pop();
 Для отримання значення елемента який останній був доданий до
колекції необхідно застосувати метод Peek(), який не видаляє елементи
з колекції на відміну від Pop()
 Звернутися за індексом до елементу даної колекції не можна
 Для перевірки, чи містить колекція задане значення застосовується
метод Contains, яка повертає true у випадку позитивного результату і
false в іншому випадку
 Для копіювання колекції в масив застосовується метод CopyTo()
Andriy Gladkyy
KspDevelop@gmail.com 6
Stack st = new Stack()
Andriy Gladkyy
KspDevelop@gmail.com 7
Демонстрація
System.Collections.Queue
 Дана колекція відрізняється від колекції Stack тим, що вона
організована за принципом FIFO (first-in-first-out), за яким працює
черга.
 Індексація до даної колекції не застосовується
 Для поміщення елементів в колекцію використовується метод
Enqueue()
 Для видалення елементів з колекції використовується метод Dequeue()
 Метод Peek() повертає значення елемента, який був першим
поміщений в колекцію (при цьому не видаляє його)
Andriy Gladkyy
KspDevelop@gmail.com 8
Andriy Gladkyy
KspDevelop@gmail.com 9
Демонстрація
System.Collections.SortedList
 Представляє собою колекцію пар об’єктів ключ-значення, які
сортуються по ключі і доступ до елементів якою може бути отриманий
по ключу і по індексу.
 По замовчуванню ємність колекції дорівнює нулю.
 При додані першого елемента ємність встановлюється в 16 елементів.
При переповнені даної позначки пам’ять подвоюється
 Для додання пари лементів в колекцію використовується метод Add(),
при цьому задається ключ і значення.
 Елементи поміщені в колекцію SortedList автоматично будуть
відсортовані по ключу
 Для видалення елементів по ключу застосовується метод Remove()
 Для видалення елементів по індексу застосовується метод RemoveAt()
 Пара ключ-значення не обов’язково повинні бути одного типу. Але всі
пари повинні бути однорідними, тобто ключі одного і того самого
типу, всі значення одного і того самого типу. Колекція не може
сортувати об’єкти (ключі) різних типів.
Andriy Gladkyy
KspDevelop@gmail.com 10
Andriy Gladkyy
KspDevelop@gmail.com 11
Демонстрація
System.Collections.Hashtable
 Представляю собою набір даних, що містять пари ключ-значення, які
відносяться до типу object.
 Дана колекція відноситься до групи словників, де по ключу ми
можемо отримати доступ до значення.
 Ключі і значення можуть бути різних типів не тільки в межах пари а і
межах колекції.
 Щоб добавити пару в колекцію використовується метод Add()
 Щоб видалити пару з колекції використовується метод Remove()
 Перевірити чи колекція містить задане значення можна вказати його
ключ як параметр методу Contains()
Andriy Gladkyy
KspDevelop@gmail.com 12
Andriy Gladkyy
KspDevelop@gmail.com 13
Andriy Gladkyy
KspDevelop@gmail.com 14
Andriy Gladkyy
KspDevelop@gmail.com 15
Andriy Gladkyy
KspDevelop@gmail.com 16
Andriy Gladkyy
KspDevelop@gmail.com 17
Andriy Gladkyy
KspDevelop@gmail.com 18
Створити примітивний англо-український і українсько-англійський
словник, що містить пари слів – назви країн по українські і англійські.
Користувач повинен мати можливість вибрати напрямок перекладу.

More Related Content

Viewers also liked

System programing module 2
System programing module 2System programing module 2
System programing module 2Andrii Hladkyi
 
System programing module 3
System programing module 3System programing module 3
System programing module 3Andrii Hladkyi
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12Andrii Hladkyi
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17Andrii Hladkyi
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii Hladkyi
 

Viewers also liked (8)

System programing module 2
System programing module 2System programing module 2
System programing module 2
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 

More from Andrii Hladkyi

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. SerializationAndrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsAndrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorAndrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsAndrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsAndrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesAndrii Hladkyi
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOPAndrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+Andrii Hladkyi
 

More from Andrii Hladkyi (20)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 

Net framework і c# module 13

  • 1. .NET Framework і C# Модуль 13 Колекції
  • 2. В цьому модулі:  Поняття колекції  Класи колекцій ArrayList, HashTable, Stack, Queue, SortedList  Інтерфейси колекцій IList, IEnumerator, IEnumerable, ICollection, IDictionary, IComparer, IDictionaryEnumerator  Приклади використання класів колекцій для збереження стандартних і користувацьких типів 2 Andriy Gladkyy KspDevelop@gmail.com
  • 3. Поняття Колекції  Колекція – це група елементів. В .NET колекції містяться об’єкти, в тому числі і упаковані типи значень.  Всі класи колекцій находяться в просторі імен System.Collections. Andriy Gladkyy KspDevelop@gmail.com 3
  • 4. System.Collections.ArrayList  ArrayList – це клас подібний масиву але він може розширюватись.  При поміщені в колекцію більше елементів ніж місткість колекції то місткість колекції в два рази збільшується.  Додання елементів в колекцію відбувається за допомогою методів Add() AddRange()  Місткість колекції можна зменшити до фактичної за допомогою метода TrimToSize()  Колекція ArrayList сприймає свої об’єкти як object. Тому в дану колекцію можна помістити об’єкти різних типів.  Метод GetRange() дозволяє сформувати нову колекцію зі значеннями елементів, взятих з вказаного діапазону вхідної колекції.  Для видалення елементів з колекції ArrayList по заданому індексу можна за допомогою методу RemoveAt()  Метод Sort() дозволяє сортувати колекцію по принципу, що залежить від типу елементів Andriy Gladkyy KspDevelop@gmail.com 4 ArrayList arr = new ArrayList()
  • 6. System.Collections.Stack  Тип колекції, що ідеально підходить для тимчасового розміщення об’єктів, які після використання будуть видалені.  Дана колекція працює за принципом LIFO (last-in-first-out).  Елементи добавляються в колекції за допомогою метода Push();  Витягуються за допомогою метода Pop();  Для отримання значення елемента який останній був доданий до колекції необхідно застосувати метод Peek(), який не видаляє елементи з колекції на відміну від Pop()  Звернутися за індексом до елементу даної колекції не можна  Для перевірки, чи містить колекція задане значення застосовується метод Contains, яка повертає true у випадку позитивного результату і false в іншому випадку  Для копіювання колекції в масив застосовується метод CopyTo() Andriy Gladkyy KspDevelop@gmail.com 6 Stack st = new Stack()
  • 8. System.Collections.Queue  Дана колекція відрізняється від колекції Stack тим, що вона організована за принципом FIFO (first-in-first-out), за яким працює черга.  Індексація до даної колекції не застосовується  Для поміщення елементів в колекцію використовується метод Enqueue()  Для видалення елементів з колекції використовується метод Dequeue()  Метод Peek() повертає значення елемента, який був першим поміщений в колекцію (при цьому не видаляє його) Andriy Gladkyy KspDevelop@gmail.com 8
  • 10. System.Collections.SortedList  Представляє собою колекцію пар об’єктів ключ-значення, які сортуються по ключі і доступ до елементів якою може бути отриманий по ключу і по індексу.  По замовчуванню ємність колекції дорівнює нулю.  При додані першого елемента ємність встановлюється в 16 елементів. При переповнені даної позначки пам’ять подвоюється  Для додання пари лементів в колекцію використовується метод Add(), при цьому задається ключ і значення.  Елементи поміщені в колекцію SortedList автоматично будуть відсортовані по ключу  Для видалення елементів по ключу застосовується метод Remove()  Для видалення елементів по індексу застосовується метод RemoveAt()  Пара ключ-значення не обов’язково повинні бути одного типу. Але всі пари повинні бути однорідними, тобто ключі одного і того самого типу, всі значення одного і того самого типу. Колекція не може сортувати об’єкти (ключі) різних типів. Andriy Gladkyy KspDevelop@gmail.com 10
  • 12. System.Collections.Hashtable  Представляю собою набір даних, що містять пари ключ-значення, які відносяться до типу object.  Дана колекція відноситься до групи словників, де по ключу ми можемо отримати доступ до значення.  Ключі і значення можуть бути різних типів не тільки в межах пари а і межах колекції.  Щоб добавити пару в колекцію використовується метод Add()  Щоб видалити пару з колекції використовується метод Remove()  Перевірити чи колекція містить задане значення можна вказати його ключ як параметр методу Contains() Andriy Gladkyy KspDevelop@gmail.com 12
  • 18. Andriy Gladkyy KspDevelop@gmail.com 18 Створити примітивний англо-український і українсько-англійський словник, що містить пари слів – назви країн по українські і англійські. Користувач повинен мати можливість вибрати напрямок перекладу.