ExpC_Module 13ru_1.ppt
- Количество слайдов: 31
Модуль 13 Коллекции
Обзор модуля В этом модуле вы изучите n Пространство имен System. Collections. Generic n Класс Array. List n Класс Hashtable n Класс Sorted. List n Базовый класс Dictionary Изучение C#/ Модуль 13/ 2 из 31
Занятие 1 - Пространство имен “System. Collections” На первом занятии, Пространство имен System. Collections, вы изучите: Объяснение пространства имен System. Collections в C#. n Объяснение часто используемых классов и интерфейсов в пространстве имен System. Collections. n Изучение C#/ Модуль 13/ 3 из 31
Коллекции n n Коллекция в C# - это набор значений, одного или разных типов, размер которого заранее неизвестен. Значения в коллекции могут добавляться и модифицироваться во время выполнения. Изучение C#/ Модуль 13/ 4 из 31
Определение n Коллекция - это набор связанных данных, не Массив обязательно принадлежащих Коллекция одному типу. Не может изменять размер во время выполнения. Может изменять размер во время выполнения. одинаковый тип. быть разного типа. Не содержат методов или n Доступ к коллекциям операций над элементами. Может содержать методы Он может добавляться или модифицироваться Отдельные элементы имеют Отдельные элементы могут динамически во время выполнения. n аналогичен доступу к или операции над массивам, где обращение к элементам происходит элементами. в соответствии с их индексами. Изучение C#/ Модуль 13/ 5 из 31
Пространство имен “System. Collections” n n n Пространство имен System. Collections в C# позволяет конструировать и манипулировать коллекциями объектов. Коллекция может содержать элементы различных типов. Пространство имен System. Collections определяет различные коллекции, например, динамические массивы, списки и словари. Изучение C#/ Модуль 13/ 6 из 31
Классы и интерфейсы Класс Описание n Пространство имен System. Collections состоит Интерфейс Описание Array. List классов и интерфейсов, которыемассиву, задля всех из ICollection Обеспечивает размер и методы синхронизации Указывает коллекцию аналогичную определяют коллекций такиеисключением того, что элементы могут динамически различные коллекции, как: добавляться и возвращаться из списка, и она может IEnumerator содержать значения различных типов Поддерживает итерации над элементами коллекции Классы IList Stack Представляет коллекцию элементов, доступных по их Обеспечивает коллекцию, работающую по принципу Last-In. First-Out (LIFO, последний-пришел-первый-ушел), индексу Интерфейсы означающему, что последний добавленный в коллекцию элемент будет удален первым Queue Обеспечивает коллекцию, работающую по принципу First-In. First-Out (FIFO, первым-пришел-первым-ушел), означающему, что первый добавленный в коллекцию элемент будет удален первым Hashtable Обеспечивает коллекцию пар ключ-значение, организованных на базе хэш-кода ключа Sorted. List Обеспечивает коллекцию пар ключ-значение, Модуль 13/ 7 из 31 Изучение C#/ отсортированных по значению ключей
Занятие 2 - Пространство имен “System. Collections. Generic” На втором занятии, Пространство имен System. Collections. Generic, вы изучите: Объяснение пространства имен System. Collections. Generic в C#. n Объяснение часто используемых классов и интерфейсов в пространстве имен System. Collections. Generic. n Изучение C#/ Модуль 13/ 8 из 31
Пространство имен “System. Collections. Generic” n n Базовые коллекции позволяют определять структуры, образующие функциональности, которые можно реализовать для любого типа данных. Базовые коллекции позволяют повторное использование кода для разных типов данных. Для создания базовых коллекций, следует использовать встроенные классы пространства имен System. Collections. Generic. Эти классы гарантируют безопасность типов, являющуюся особенностью C#, при которой значение рассматривается в точном соответствии с определенным ранее типом. Изучение C#/ Модуль 13/ 9 из 31
Классы и интерфейсы Классы - позволяют создание коллекций с Интерфейсы - могут быть реализованы для безопасностью типов. создания коллекций с безопасностью типов. Класс List<T> Интерфейс Описание Обеспечивает базовую коллекцию элементов, которая Описание может динамически изменять размер Определяет методы для управленияработающую по Обеспечивает базовую коллекцию, различными принципу Last-In-First-Out (LIFO, последний-пришелбазовыми коллекциями ICollection Stack<T> первый-ушел), означающему, что последний Представляет базовую коллекцию, состоящую из добавленный в коллекцию элемент будет удален первым IDictionary пар ключ-значениебазовую коллекцию, работающую по Обеспечивает Queue<T> принципу First-In-First-Out (FIFO, первым-пришел-первым Поддерживает простые итерации по элементам -ушел), означающему, что первый добавленный в базовой коллекции коллекцию элемент будет удален первым IEnumerator Представляет базовую коллекцию элементов, Обеспечивает базовую коллекцию ключей и значений доступных по их индексу коллекцию пар ключ-значение, Sorted. Dictionary<K, V> Обеспечивает базовую IList Dictionary<K, V> отсортированных по ключу Linked. List<T> Реализует двусвязанный список с хранением в нем Изучение C#/ Модуль 13/ 10 из 31 элементов
Занятие 3 - Класс “Array. List” На третьем занятии, Класс“Array. List” , вы изучите: n Объяснение класса Array. List и его использование. n Описание часто используемых методов и свойств класса Array. List Изучение C#/ Модуль 13/ 11 из 31
Класс “Array. List” n n Это массив с определяемой переменными длиной, который может динамически изменять размер. Позволяет указывать размер коллекции по время выполнения программы. Позволяет определять емкость, указывающую число элементов, которое может содержать список массива. Значение емкости по умолчанию для класса Array. List равно 16. Изучение C#/ Модуль 13/ 12 из 31
Методы и свойства 1 -2 n Класс Array. List позволяет добавлять, изменять и Конструкторы помогают инициализировать Методы позволяют осуществлять такие удалять любой тип элемента объекты класса Array. List. списка даже во время действия, как добавление, удаление и выполнения. копирование элементов в списке. Конструктор Описание Инициализирует. Описание объект класса Array. List Метод Описание n Элементы в Array. List могут быть доступны с Array. List() Метод начальной емкостью по умолчанию. Копирует элементы списка в массив, Добавляет элемент в конец помощью позиции индекса. списка имя которого передается как параметр Принимает параметр типа ICollection и Array. List(ICollect Remove Удаляет указанный элемент, обнаруженный первым в списке ion) инициализирует объект класса Array. List, Index. Of Возвращает индекс элемента, найденного в списке первым Remove. At Удаляет элемент списка в соответствии с указанным индексом в содержащий элементы требует n Работа с классом Array. List неиз заданной коллекции типа списке To. Array Копирует ICollection. в массив типа Object списка Insert освобожденияэлементы в список в указанную индексом позицию Вставляет памяти. элемент Объект имеет начальную емкость аналогичную числу Trim. To. Size Определяет емкость для реального числа элементов списка Contains Определяет существования заданного элемента в списке Copy. To Add элементов, скопированных из коллекции. n Класс Array. List состоит из: конструкторов, Array. List(int) Инициализирует объект класса Array. List начальной емкостью по умолчанию в качестве методов и свойств. параметра. Изучение C#/ Модуль 13/ 13 из 31
Методы и свойства 2 -2 позволяют считать или возвращать class Array. Collection Capacity: 4 элементы списка. { Count: 3 Вывод Пример Свойства static void Main(string[] Elements of the Array. List args) { Свойство obj. Array = new Array. List(); Описание John Array. List James obj. Array. Add("John"); Capacity Определяет число элементов, которое Williams obj. Array. Add("James"); может содержать список obj. Array. Add("Peter"); obj. Array. Remove. At(2); Count Определяет число элементов, существующих obj. Array. Insert(2, "Williams"); Console. Write. Line("Capacity: " + obj. Array. Capacity); списке Console. Write. Line("Count: " + obj. Array. Count); Item Console. Write. Line(); или присваивает значение по Возвращает Console. Write. Line("Elements of the Array. List"); указанной позиции foreach (string str in obj. Array) { Console. Write. Line(str); } } в } Изучение C#/ Модуль 13/ 14 из 31
Занятие 4 - Класс “Hashtable” На четвертом занятии, Класс “Hashtable”, вы изучите: n Объяснение класса Hastable и его использование. n Описание часто используемых методов и свойств класса Hashtable Изучение C#/ Модуль 13/ 15 из 31
Введение n n n Аналогично хранилищу ключей класс Hashtable в C# позволяет создавать коллекции в форме ключей и значений. Он генерирует хэш-таблицу, сопоставляющую ключи их значениям. Класс Hashtable использует хэш-таблицу для получения значений, связанных с их уникальным ключом. Изучение C#/ Модуль 13/ 16 из 31
Класс “Hashtable” n n Хэш-таблица, сгенерированная классом Hashtable, использует технологию хэширования для получения соответствующего значения ключа. Хэширование - это процесс генерации хэш-кода ключа. Объект Hashtable использует ключ для поиска значения, реализуя хэш-функцию и генерируя хэш-код для данного ключа. Класс Hashtable состоит из различных методов и свойств, использующихся для добавления и манипулирования данными хэш-таблицы. Изучение C#/ Модуль 13/ 17 из 31
Методы и свойства 1 -2 Конструкторы - Класс Hashtable состоит Методы - Методы позволяют осуществлять из заданные действия над данными перегруженных конструкторов. хэш-таблицы. Метод Описание Конструктор Описание Add Добавляет элемент с заданными ключом и значением Hashtable() Hashtable(Int Инициализирует объект класса Hashtable Remove Удаляет элемент, имеющий соответствующий ключ 32) емкостью переданной в равной начальной емкостью, по умолчанию, качестве 11. Copy. To Копирует элементы хэш-таблицы в массив, начиная с Hashtable(IDi параметра. параметр типа IDictionary и Принимает заданного индекса ctionary) инициализирует Hashtable(IEq Инициализирует объект класса Hashtable, Hashtable uality. Compare начальной емкостьюхэш-таблица указанный ключ содержащий элементы умолчанию коллекции Contains. Key Проверяет, содержит ли поиз заданной и указанным типа IDictionary. r) параметром типа IEquality. Comparer. Contains. Value Проверяет, содержит ли хэш-таблица указанное Объект значение имеет начальную емкость аналогичную числу элементов, скопированных из коллекции. To. String Возвращает строковый объект для выделенного объекта Equals Проверяет, равны ли два экземпляра хэш-таблицы Изучение C#/ Модуль 13/ 18 из 31
Методы и свойства 2 -2 Вывод Пример Свойства - Свойства позволяют доступ и модификацию данных хэш-таблицы. Number of elements in the hash table: 4 class Hash. Collection if (obj. Table. Contains. Key(002)) Original values stored in hash table are: { { 4 Свойство obj. Table[002] = "Patrick"; : static void Main(string[] args) Joe Описание 3 : { James Count } Указывает число пар ключ-значение в хэш-таблице Hashtable obj. Table = new Hashtable(); 2 : Peter Console. Write. Line("Values stored in the hash table Item obj. Table. Add(001, "John"); removing values"); 1 : Johnafter. Указывает значение, добавляет новое или модифицирует obj. Table. Add(002, значение after removing values foreach (int in obj. Collection) существующее "Peter"); Values stored in thei hash table для заданного ключа "James"); { 4 : Joe obj. Table. Add(003, ICollection, состоящую из ключей в хэш. Keys Обеспечивает obj. Table. Add(004, "Joe"); 3 : James Console. Write. Line(i + " : " + obj. Table[i]); таблице Console. Write. Line("Number of elements in the hash } 2 : Patrick Values table: " + obj. Table. Count); состоящую из значений в хэш Обеспечивает ICollection, 1 : } John ICollection obj. Collection = obj. Table. Keys; } -таблице Console. Write. Line("Original values stored in hash table are: "); foreach (int i in obj. Collection) { Console. Write. Line (i + " : " + obj. Table[i]); } Изучение C#/ Модуль 13/ 19 из 31
Занятие 5 - Класс “Sorted. List” На пятом занятии, Класс “Sorted. List” , вы изучите: n Объяснение класса Sorted. List и его использование. n Описание часто используемых методов и свойств класса Sorted. List Изучение C#/ Модуль 13/ 20 из 31
Класс “Sorted. List” n n n Представляет коллекцию пар ключ-значение, где элементы отсортировны по ключу. По умолчанию класс Sorted. List сортирует элементы по возрастанию, что можно изменить, если объект IComparable будет передан конструктору класса Sorted. List. Эти элементы доступны или с помощью соответствующих ключей, или с помощью индексов. Изучение C#/ Модуль 13/ 21 из 31
Различия между классами “Hashtable” и “Sorted. List” n n n Класс Sorted. List является комбинацией классов Hashtable и Array. List. Различие между классами Hashtable и Sorted. List в том, что значения объекта класса Sorted. List сортированы по их ключами и доступны по их ключам и индексам. Выполнение программы с помощью класса Sorted. List медленее, чем выполнение с помощью класса Hashtable из-за процесса сортировки. Изучение C#/ Модуль 13/ 22 из 31
Методы и свойства 1 -2 Конструкторы - Класс Sorted. List состоит из Методы - Методы позволяют осуществлять заданные действия над данными конструкторов. перегруженных в отсортированной хэш-таблице. Конструктор Метод. Конструктор Описание Index. Of. Value Add Sorted. List(IComparer Инициализирует класс Sorted. List начальной Sorted. List() Инициализирует объект класса Sorted. List с Возвращает индекс указанного значения, найденного в Добавляет элемент в отсортированный список с указанным ключом отсортированном списке первым и значением , int) емкостью, определяемой параметром int, и каждый исходной емкостью по умолчанию, и каждый Contains. Key Remove Проверяет, содержит ли экземпляр класса Sorted. List указанный ключ отсортирован реализацией интерфеса ключ отсортирован из отсортированного Удаляет элемент с указанным ключом с помощью метода списка IComparer, указанного своим объектом как Compare() интерфейса ключ Возвращает ключ по указанному индексу IComparable. Get. Key параметр. Contains. Value Проверяет, содержит ли экземпляр класса Sorted. List(ICompa Инициализирует объект Sorted. List указанноес Get. By. Index Возвращает значение по указанному индексу значение rer) Sorted. List(IDiction Использует параметр типапо умолчанию, и каждый исходной емкостью IDictionary и Index. Of. Key Возвращает индекс указанного ключа в отсортированном списке Trim. To. Size ary, IComparer) Определяет емкость для реального числа элементов интерфейса инициализирует объект класса Sorted. List. ключ отсортирован реализацией отсортированного ключ отсортирован интерфейсом IComparer(), указанного своим объектом как Каждый списка IComparer и содержит элементы из заданной параметр. коллекции типа IDictionary. Объект имеет начальную емкость аналогичную числу элементов, скопированных из коллекции. Изучение C#/ Модуль 13/ 23 из 31
Методы и свойства 2 -2 Вывод Пример Свойства - Свойства класса Sorted. List позволяют доступ values stored in the sorted list class Sorted. Collection if модификацию данных отсортированного Original и(!obj. Sort. List. Contains. Key("Jerry")) { { Key Values списка. void Main(string[] args) "Construction"); static obj. Sort. List. Add("Jerry", Jack Human Resources { } Joel Marketing obj. Sort. List["Peter"] = = new Описание Sorted. List obj. Sort. List "Engineering"; Sorted. List(); Свойство John Administration obj. Sort. List["Jerry"] = "Administration"); obj. Sort. List. Add("John", "Information Technology"; Capacity Peter Finance Определяет число "Human Resources"); Console. Write. Line(); obj. Sort. List. Add("Jack", элементов, которое может содержать Updatedobj. Sort. List. Add("Peter", "Finance"); values stored in hash values отсортированный список Console. Write. Line("Updated table stored in hash table"); Console. Write. Line("Key "Marketing"); Key Values Count obj. Sort. List. Add("Joel", tt Values"); Указывает число элементов в отсортированном списке. for Resources Console. Write. Line("Original values stored in Jack Human (int i = 0; i < obj. Sort. List. Count; i++) the { sorted list"); значение, Item Указывает Jerry Information Technology добавляет новое или модифицирует Console. Write. Line("Key tt Values"); Console. Write. Line(obj. Sort. List. Get. Key(i) + " tt " + существующее значение для заданного Joel Marketing i=0; i<obj. Sort. List. Count; i++) ключа for (int obj. Sort. List. Get. By. Index(i)); John Administration Keys Возвращает ключи отсортированного списка } { Peter Engineering } Console. Write. Line(obj. Sort. List. Get. Key(i) + " tt Values Возвращает значения отсортированного списка } " + obj. Sort. List. Get. By. Index(i)); } Изучение C#/ Модуль 13/ 24 из 31
Подписка на события n Для подписки Синтаксис Пример на событие, объект добавляет § делегат, синтаксис используется для создания метода класса получателя. Следующий вызывающий метод, когда возникает // Связывает обработчик события с объявленным событием. public delegate void Print. Details(); событие. class Event { <access_modifier> <return_type> <Method. Name> event Print. Details Print; (parameters); n void Show() { § Следующий синтаксис используется для связи метода с событием Console. Write. Line(“This program illustrate how to subscribe objects to an <Delegate. Name> <object. Name>. <Event. Name> += newevent”); Console. Write. Line(“This method will not execute (Method. Name); since the event has not been raised”); где, } static void Main(string[] args) в котором определен object. Name: Это объект класса, { обработчик события. n Event obj. Events = new Event(); obj. Events. Print += new Print. Details(obj. Events. Show); } } Это выполняется ассоциированием обработчика события и созданного события с помощью оператора добавляющего присваивания, что называется подпиской на событие. Чтобы отписаться от события, следует использовать оператор вычитающего присваивания. Изучение C#/ Модуль 13/ 25 из 31
Занятие 6 - Базовый класс “Dictionary” На последнем занятии, Базовый класс Dictionary, вы изучите: n Объяснение базового класса Dictionary и его использование. n Описание часто используемых методов и свойств базового класса Dictionary Изучение C#/ Модуль 13/ 26 из 31
Базовый класс “Dictionary” n Пространство имен System. Collections. Generic Синтаксис содержит большое число базовых коллекций. Dictionary<TKey, TValue> где, n TKey: Параметр типа ключей, хранимых в экземпляре них Один из наиболее часто используемых среди класса. Dictionary. базовый класс Dictionary. TValue: Параметр типа значений, хранимых в экземпляре класса Dictionary. n n Он состоит из базовой коллекции элементов, организованных в пары ключ-значение. В отличие от других коллекций в пространстве имен System. Collections, он используется для создания коллекций одного типа данных. Изучение C#/ Модуль 13/ 27 из 31
Методы и свойства 1 -2 Методы - Методы базового класса Dictionary Конструкторы - Базовый класс Dictionary позволяют осуществлять заданные действия состоит из перегруженных конструкторов. над данными в коллекции. Конструктор Описание Dictionary(Int Dictionary() 32, Метод Generic Add IEquality. Compa Dictionary(Gen rer) Remove eric IDictionary) Clear Contains. Key Contains. Value Try. Get. Value Инициализизирует объект класса Dictionary Инициализирует объект класса Dictionary Описание заданной емкостью и с помощью начальной по умолчанию. реализации интерфейса IEquaity. Comparer. Добавляет указаные ключ и значение в коллекцию Использует параметр базового типа Удаляет значение, связанное с указанным ключом IDictionary и инициализирует объект класса Dictionary. Удаляет все ключи и значения из коллекции Объект содержит элементы указанной Проверяет, содержит ли коллекция указанный коллекции типа IDictionary и имеет ключ начальную емкость аналогичную числу Проверяет, содержит ли коллекция указанное элементов, скопированных из коллекции. значение Возвращает значение, связанное с указанным ключом Изучение C#/ Модуль 13/ 28 из 31
Методы и свойства 2 -2 Вывод Пример Свойства - Свойства базового класса Dictionary позволяют модифицировать данные в коллекции. if values stored class Dictionary. Collection in the collection Original (obj. Dictionary. Contains. Value("Memory ")) { { Keys Values Console. Write. Line("Value Memory could not be deleted"); static void Main(string[] args) --------{ } else 25 Hard Disk Свойство {Dictionary<int, string> obj. Dictionary = new Описание Dictionary<int, string>(); 30 Processor Console. Write. Line("Value Memory deleted successfully"); }obj. Dictionary. Add(25, "Hard Disk"); Count 15 Mother. Board число пар ключ-значение в коллекции Указывает obj. Dictionary. Add(30, "Processor"); Console. Write. Line(); 65 Memory obj. Dictionary. Add(15, "Mother. Board"); Console. Write. Line("Values stored after removing element"); Item Value Указывает значение, добавляет новое или модифицирует Memory deleted successfully obj. Dictionary. Add(65, "Memory"); Console. Write. Line("Keys t Values"); для element Valuesсуществующее значение = obj. Dictionary. Keys; stored after removing заданного ключа ICollection obj. Collect Console. Write. Line("--------"); foreach Console. Write. Line("Original Keys Values (int коллекцию, содержащуюstored in the collection"); Возвращает i in obj. Collect) values ключи { Console. Write. Line("Keys t Values"); --------Console. Write. Line(i " t " + obj. Dictionary[i]); Values Console. Write. Line("--------"); Возвращает коллекцию, +содержащую значения 25 Hard Disk (int i in obj. Collect) } foreach } 30 Processor { } Console. Write. Line(i + " t " + obj. Dictionary[i]); 15 Mother. Board } obj. Dictionary. Remove(65); Console. Write. Line(); Изучение C#/ Модуль 13/ 29 из 31
Резюме 1 -2 Пространство имен n System. Collections Содержит различные коллекции, например, массивы, хэш-таблицы, списки и словари. Пространство имен System. Collections. Generic n Состоит из базовых коллекций, позволяющих повторное использование кода и обеспечивающих лучшую безопасность типов. Класс Array. List n Позволяет изменять размер коллекции по время выполнения программы. Изучение C#/ Модуль 13/ 30 из 31
Резюме 2 -2 Класс n Hashtable Хранит элементы как пары ключ-значение, где организованные данные базируются на хэш-коде. Класс Sorted. List n Позволяет хранить элементы в вид пар ключзначение, сортируя данные на основе ключа. Базовый класс Dictionary n Он состоит из базовой коллекции элементов, организованных в пары ключ-значение. Изучение C#/ Модуль 13/ 31 из 31
ExpC_Module 13ru_1.ppt