net framework і c# module 13

18
.NET Framework і C# Модуль 13 Колекції

Upload: andriy-gladkiy

Post on 15-Apr-2017

85 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Net framework і c# module 13

.NET Framework і C#Модуль 13 Колекції

Page 2: Net framework і c# module 13

2

В цьому модулі: Поняття колекції Класи колекцій ArrayList, HashTable, Stack, Queue, SortedList Інтерфейси колекцій IList, IEnumerator, IEnumerable, ICollection,

IDictionary, IComparer, IDictionaryEnumerator Приклади використання класів колекцій для збереження стандартних і

користувацьких типів

Andriy Gladkyy [email protected]

Page 3: Net framework і c# module 13

3

Поняття Колекції Колекція – це група елементів. В .NET колекції містяться об’єкти, в

тому числі і упаковані типи значень. Всі класи колекцій находяться в просторі імен System.Collections.

Andriy Gladkyy [email protected]

Page 4: Net framework і c# module 13

4

System.Collections.ArrayList ArrayList – це клас подібний масиву але він може розширюватись.

При поміщені в колекцію більше елементів ніж місткість колекції то місткість колекції в два рази збільшується. Додання елементів в колекцію відбувається за допомогою методів Add() AddRange() Місткість колекції можна зменшити до фактичної за допомогою метода TrimToSize() Колекція ArrayList сприймає свої об’єкти як object. Тому в дану колекцію можна помістити об’єкти різних типів. Метод GetRange() дозволяє сформувати нову колекцію зі значеннями елементів, взятих з вказаного діапазону вхідної колекції. Для видалення елементів з колекції ArrayList по заданому індексу можна за допомогою методу RemoveAt() Метод Sort() дозволяє сортувати колекцію по принципу, що залежить від типу елементів

Andriy Gladkyy [email protected]

ArrayList arr = new ArrayList()

Page 5: Net framework і c# module 13

5

Andriy Gladkyy [email protected]

Демонстрація

Page 6: Net framework і c# module 13

6

System.Collections.Stack Тип колекції, що ідеально підходить для тимчасового розміщення

об’єктів, які після використання будуть видалені. Дана колекція працює за принципом LIFO (last-in-first-out).

Елементи добавляються в колекції за допомогою метода Push(); Витягуються за допомогою метода Pop(); Для отримання значення елемента який останній був доданий до

колекції необхідно застосувати метод Peek(), який не видаляє елементи з колекції на відміну від Pop()

Звернутися за індексом до елементу даної колекції не можна Для перевірки, чи містить колекція задане значення застосовується

метод Contains, яка повертає true у випадку позитивного результату і false в іншому випадку

Для копіювання колекції в масив застосовується метод CopyTo()

Andriy Gladkyy [email protected]

Stack st = new Stack()

Page 7: Net framework і c# module 13

7Andriy Gladkyy [email protected]

Демонстрація

Page 8: Net framework і c# module 13

8

System.Collections.Queue Дана колекція відрізняється від колекції Stack тим, що вона

організована за принципом FIFO (first-in-first-out), за яким працює черга.

Індексація до даної колекції не застосовується Для поміщення елементів в колекцію використовується метод

Enqueue() Для видалення елементів з колекції використовується метод Dequeue() Метод Peek() повертає значення елемента, який був першим

поміщений в колекцію (при цьому не видаляє його)

Andriy Gladkyy [email protected]

Page 9: Net framework і c# module 13

9Andriy Gladkyy [email protected]

Демонстрація

Page 10: Net framework і c# module 13

10

System.Collections.SortedList Представляє собою колекцію пар об’єктів ключ-значення, які

сортуються по ключі і доступ до елементів якою може бути отриманий по ключу і по індексу.

По замовчуванню ємність колекції дорівнює нулю. При додані першого елемента ємність встановлюється в 16 елементів.

При переповнені даної позначки пам’ять подвоюється Для додання пари лементів в колекцію використовується метод Add(),

при цьому задається ключ і значення. Елементи поміщені в колекцію SortedList автоматично будуть

відсортовані по ключу Для видалення елементів по ключу застосовується метод Remove() Для видалення елементів по індексу застосовується метод RemoveAt() Пара ключ-значення не обов’язково повинні бути одного типу. Але всі

пари повинні бути однорідними, тобто ключі одного і того самого типу, всі значення одного і того самого типу. Колекція не може сортувати об’єкти (ключі) різних типів.

Andriy Gladkyy [email protected]

Page 11: Net framework і c# module 13

11Andriy Gladkyy [email protected]

Демонстрація

Page 12: Net framework і c# module 13

12

System.Collections.Hashtable Представляю собою набір даних, що містять пари ключ-значення, які

відносяться до типу object. Дана колекція відноситься до групи словників, де по ключу ми

можемо отримати доступ до значення. Ключі і значення можуть бути різних типів не тільки в межах пари а і

межах колекції. Щоб добавити пару в колекцію використовується метод Add() Щоб видалити пару з колекції використовується метод Remove() Перевірити чи колекція містить задане значення можна вказати його

ключ як параметр методу Contains()

Andriy Gladkyy [email protected]

Page 13: Net framework і c# module 13

13Andriy Gladkyy [email protected]

Page 14: Net framework і c# module 13

14Andriy Gladkyy [email protected]

Page 15: Net framework і c# module 13

15Andriy Gladkyy [email protected]

Page 16: Net framework і c# module 13

16Andriy Gladkyy [email protected]

Page 17: Net framework і c# module 13

17Andriy Gladkyy [email protected]

Page 18: Net framework і c# module 13

18Andriy Gladkyy [email protected]

Створити примітивний англо-український і українсько-англійський словник, що містить пари слів – назви країн по українські і англійські. Користувач повинен мати можливість вибрати напрямок перекладу.