c list dictionary tutorial with code examples
Цей посібник пояснює список C # та словник із прикладами. Ви дізнаєтесь, як ініціалізувати, заповнити та отримати доступ до елементів у Словнику та списку C #:
У нашому попередньому навчальному посібнику з колекцій C # ми дізналися про типи колекцій, присутні в C #, такі як ArrayList, Hashtable, Stack, SortedList тощо. Загальне серед цих типів колекцій полягає в тому, що вони можуть зберігати будь-який тип елементів даних.
Це здається цілком корисним для зберігання різних типів даних всередині однієї сутності колекції, але недоліком є те, що під час отримання даних із колекції необхідне передавання даних до відповідного типу даних. Без трансляції даних програма видасть виняток виконання та може перешкоджати застосуванню.
=> БЕЗКОШТОВНІ навчальні посібники для C # для всіх
Для вирішення цих проблем C # також пропонує загальні класи колекцій. Загальна колекція забезпечує кращу продуктивність під час зберігання та пошуку предметів.
Що ви дізнаєтесь:
C # Список
Ми вже дізналися про ArrayList у попередніх статтях. В основному, List схожий на ArrayList, єдина відмінність полягає в тому, що List є загальним. Список має унікальну властивість розширювати свій розмір у міру зростання, подібно до списку масивів.
Як ініціалізувати список?
Ми можемо ініціалізувати список наступними способами:
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();
Якщо ви подивитесь на наведений вище приклад, то побачите, що в першому рядку ми використали List для ініціалізації цілочисельного списку. Але у другому рядку ми використали IList для ініціалізації списку рядків. Ви можете використовувати будь-яку з них для своєї програми. Список насправді є реалізацією інтерфейсу IList.
Як додати та вставити елемент до списку?
Подібно до ArrayList, ми можемо додати елемент до Списку за допомогою методу Add (). Метод add приймає значення типу даних як аргумент.
Синтаксис
ListName.Add(DataType value);
Давайте розглянемо просту програму для додавання даних до списку та IList.
Програма:
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List ;(); //Add elements to the list listInteger.Add(1); listInteger.Add(2); listInteger.Add(3); //using IList type for initialization IList listString = new List(); listString.Add('One'); listString.Add('Two'); listString.Add('Three'); Console.ReadLine(); } }
Елемент також можна додати безпосередньо під час ініціалізації списку. Ми можемо безпосередньо додати значення до списку під час самої ініціалізації, подібним чином, як це було зроблено під час нашої глави 'Масиви'.
Це можна додати, поставивши фігурні дужки після Списку, а потім записавши всередині нього значення, розділене комами. Давайте трохи змінимо вищезазначену програму, щоб ми могли додати значення безпосередньо під час ініціалізації.
приклади програм для Інтернету речей
Отже, наша програма тепер буде виглядати так:
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //using IList type for initialization IList listString = new List(); listString.Add('One'); listString.Add('Two'); listString.Add('Three'); Console.ReadLine(); } }
У наведеній вище програмі ми ініціалізували значення цілочисельного списку на початку під час ініціалізації. Це дозволило нам передавати значення безпосередньо, не записуючи методу Add () для кожного значення. Це дуже корисно, якщо ми маємо обмежену кількісно визначену кількість даних, які нам потрібно додати до списку.
Як отримати доступ до списку?
Ми можемо отримати доступ до окремих елементів зі списку за допомогою індексу. Індекс можна передавати у квадратній дужці після назви списку.
Синтаксис
dataType Val = list_Name(index);
Тепер давайте розглянемо просту програму для отримання даних зі списку, який ми створили в нашій попередній програмі.
Програма
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; int val = listInteger(1); Console.WriteLine(val); } }
Результатом роботи наступної програми буде значення з індексом 1. Індекс починається з 0, результат буде:
два
Скажімо, ми хочемо отримати всі дані зі Списку, ми можемо зробити це, використовуючи для кожного циклу або для циклу.
Для кожної петлі
Ми можемо використовувати для кожного циклу, щоб отримати всі дані зі списку.
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; foreach (var val in listInteger) { Console.WriteLine(val); } } }
Тут ми переглянули список, використовуючи для кожного циклу, оголошуючи значення змінної. Це дозволить пройти кожен цикл у списку, поки в ньому не буде даних.
Для петлі
Для використання циклу for нам потрібно знати кількість елементів, присутніх у списку. Для отримання підрахунку елемента можна використовувати метод Count ().
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; iІноді нам також може знадобитися вставити новий елемент всередину списку. Для цього нам потрібно використовувати метод Insert (), щоб додати новий метод де завгодно у списку. Метод вставки приймає два аргументи, перший - це індекс, в який ви хочете вставити дані, а другий - це дані, які ви хочете вставити.
Синтаксис для вставки такий:
List_Name.Insert(index, element_to_be_inserted);
Тепер давайте вставимо елемент всередину списку, який ми створили раніше. Ми додамо оператор вставки до вищезазначеної програми і спробуємо побачити, як це працює:
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i Якщо ми виконаємо вищезазначену програму, виведемо:
один
два
3
Значення списку після вставки нового значення val
один
22
два
3
Після циклу for ми додали оператор insert, щоб вставити ціле число 22 з індексом 1 у попередньо визначений список. Потім ми написали для кожного циклу, щоб надрукувати всі елементи, що зараз присутні у списку (після вставки перших даних).
З результату роботи ми чітко бачимо, що всі елементи списку були зміщені вперед, щоб звільнити місце для нового елемента з індексом 1. Індекс 1 тепер має 22 як елемент, а попередній елемент за індексом 1, тобто 2, перемістився до наступний індекс тощо.
Як вилучити елемент зі списку?
Іноді ми можемо також вимагати вилучити елементи зі списку. Для цього C # пропонує два різні методи. Ці два методи - Remove () та RemoveAt (). Remove використовується для видалення певного елемента зі списку, а RemoveAt - для видалення будь-якого елемента, що присутній у даному індексі.
Давайте подивимось на синтаксис.
Синтаксис
Remove(Element name); RemoveAt(index);
Тепер додамо оператор Remove до попереднього коду і подивимося, що станеться.
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i Результатом роботи вищезазначеної програми буде:
один
два
3
Видалення значення зі списку
один
3
У наведеній вище програмі ми використали метод видалення, щоб вилучити елемент 2 зі списку. Як ви можете бачити у вихідних даних, як тільки метод Remove буде виконаний, список більше не містить елемента, який ми видалили.
Подібним чином ми можемо також використовувати метод RemoveAt. Давайте замінимо метод Remove у наведеній вище програмі на метод RemoveAt () і передамо номер індексу як параметр.
class Program { staticvoid Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i Результатом роботи вищезазначеної програми буде:
один
два
3
Видалення значення зі списку
один
два
У наведеній вище програмі ви можете чітко бачити, що ми видалили елемент, присутній в індексі 2, а не видалили ціле число 2. Отже, залежно від вимоги можна використовувати або Remove (), або RemoveAt () для видалення певного елемента з список.
Словник C #
Словник на C # подібний до словника, який ми маємо на будь-якій мові. Тут також ми маємо збірник слів та їх значення. Слова відомі як ключові, і їх значення або визначення можна визначити як значення.
Словник приймає два аргументи, перший - ключовий, а другий - значення. Він може бути ініціалізований за допомогою змінної класу Словника або інтерфейсу IDictionary.
Синтаксис словника:
Dictionary
Давайте розглянемо просту програму для ініціалізації словника:
найкращий блокувальник спливаючих вікон
Dictionary data = new Dictionary();
У наведеній вище програмі ви можете чітко бачити, що ми ініціалізували дані словника як ключем, так і значенням як рядком. Але ви можете використовувати будь-яку пару типів даних для ключів і значень. Наприклад, якщо ми змінимо наведене вище твердження на інший тип даних, тоді воно буде правильним.
Dictionary data = new Dictionary();
Тип даних у кутовій дужці призначений для ключів і значень. Ви можете зберегти будь-який тип даних як ключ і значення.
Як додати ключі та значення до словника?
Ми побачили, як ми можемо ініціалізувати словник. Тепер ми додамо ключі та їх значення до словника. Словник дуже корисний, коли ви хочете додати різні дані та їх значення до списку. Метод Add () можна використовувати для додавання даних до словника.
Синтаксис
DictionaryVariableName.Add(Key, Value);
Тепер давайте включимо оператор Add у вищезазначену програму, щоб додати ключі та значення до словника.
Програма
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } }
У наведеній вище програмі ми використовували метод Add (), щоб додати ключ і значення до словника. Перший параметр, переданий методу Add (), є ключем, а другий параметр - значенням ключа.
Як отримати доступ до ключів та значень зі словника?
Як обговорювалось у нашому посібнику зі списку, ми також можемо отримати доступ до елементів зі словника різними способами. Ми обговоримо декілька важливих способів отримати доступ до нього тут. Ми обговоримо для циклу, для кожного циклу та індексу для доступу до елементів даних.
Індекс можна використовувати для доступу до певних значень зі списку.
Цикл For може використовуватися для доступу або отримання всіх елементів зі словника, але для зупинки циклу потрібен розмір словника. Кожен цикл є більш гнучким, він може отримувати всі дані, наявні у словнику, не вимагаючи розміру словника.
Використання індексації
Елемент з індексу може використовуватися подібно до масиву для доступу до елемента, основна відмінність полягає в тому, що замість індексу нам потрібні ключі для доступу до значень.
Синтаксис
Dictionary_Name(key);
Програма
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); string value = dctn('two'); Console.WriteLine(value); Console.ReadLine(); } }
Результатом роботи вищезазначеної програми буде:
друге
Використання для циклу для доступу до елемента
Цикл for можна використовувати для доступу до всіх елементів словника. Але йому також потрібно отримати кількість елементів у словнику за необхідну кількість ітерацій.
Додамо цикл for до вищезазначеної програми, щоб отримати всі значення зі словника.
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); for(int i =0; i Результатом роботи вищезазначеної програми буде:
Елемент у ключі: один та його значення: перший
Елемент у ключі: два та його значення: другий
Елемент у ключі: три та його значення: Третій
У наведеній вище програмі ми використовували метод ElementAt () для отримання ключа з заданим індексом, а потім використовували той самий ключ для отримання даних значення ключа. Цикл for перебирає всі дані всередині словника. Властивість count використано для отримання розміру словника для ітерації.
Використання для кожного циклу
Подібно до циклу for, ми також можемо використовувати для кожного циклу.
Давайте подивимось на вищезазначену програму з циклом для кожного.
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); foreach (KeyValuePair item in dctn) { Console.WriteLine('The Key is :'+ item.Key+' - The value is: '+ item.Value); } Console.ReadLine(); } }
Результатом роботи вищезазначеної програми буде:
Ключ: один - значення: перший
Ключ: два - Значення: друге
Ключ: три - Значення: Третій
Вищевказана програма використовує KeyValuePair для оголошення змінної, потім ми перебираємо кожну з пар ключ-значення у словнику та друкуємо її на консолі.
Як перевірити наявність даних у словнику?
Іноді нам потрібно перевірити, чи існує певний ключ або значення у словнику чи ні. Ми можемо перевірити це, використовуючи два методи, тобто ContainsValue () та ContainsKey (), щоб перевірити наявний ключ або значення всередині словника.
Метод 'Містить' використовується для перевірки, якщо вказане значення присутнє у словнику чи ні. Метод ContainsKey використовується для перевірки того, чи існує даний ключ у словнику чи ні.
Синтаксис
виробник вільних схем для mac -
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
Давайте напишемо просту програму для перевірки за допомогою методу Contains та ContainsKey.
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); bool key = dctn.ContainsKey('one'); bool val = dctn.ContainsValue('four'); Console.WriteLine('The key one is available : ' + key); Console.WriteLine('The value four is available : ' + val); Console.ReadLine(); } }
Результатом роботи вищезазначеної програми буде:
Доступний ключовий: True
Доступне значення чотири: False
У наведеній вище програмі ми вперше застосували метод ContainsKey для перевірки наявності вказаного ключа всередині словника. Оскільки ключ присутній у словнику, метод повертає true. Потім ми використовуємо ContainsValue, щоб визначити, чи є дане значення наявним чи ні. Оскільки значення 'чотири' відсутнє в словнику, воно поверне значення false.
Як вилучити елемент зі словника?
Може бути час, коли нам знадобиться видалити певну пару ключ-значення зі словника, щоб виконати певну логіку програмування. Метод Remove може бути використаний для видалення будь-якої пари зі словника на основі ключа.
Синтаксис
Remove(key);
Програма
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); //removing key two dctn.Remove('two'); //validating if the key is present or not bool key = dctn.ContainsKey('two'); Console.WriteLine('The key two is available : ' + key); Console.ReadLine(); } }
Результатом роботи вищезазначеної програми буде:
Доступні два ключових слова: False
У наведеній вище програмі спочатку ми додали пару ключ-значення до словника. Потім ми вилучили ключ зі словника та використали метод ContainsKey () для перевірки, якщо пара ключ-значення більше не присутня у словнику.
Висновок
Список зберігає елементи певного типу даних і зростає у міру додавання елементів. Він також може зберігати кілька повторюваних елементів. Ми можемо легко отримати доступ до елементів у списку за допомогою індексу або циклів. Список дуже корисний для зберігання великої кількості даних.
Словник використовується для зберігання пар ключ-значення. Тут ключі повинні бути унікальними. Значення зі словника можна отримати за допомогою циклу або індексу. Ми також можемо перевірити ключі або значення за допомогою методу Contains.
=> Подивіться повну серію навчальних програм C # тут
Рекомендована література
- Підручник з обробки винятків C # із прикладами коду
- Підручник з Python DateTime із прикладами
- Підручник з функцій / методів C # із прикладами коду
- Підручник SVN: Управління вихідним кодом за допомогою Subversion
- Підручник з рядків C # - Рядові методи з прикладами коду
- Підручник з черепахи SVN: Редакції у сховищі коду
- Підручник з набору Python з практичними прикладами
- Команда Ls в Unix з прикладами