Как использовать словарь в C#
Программирование

Как использовать словарь в C#

Узнайте все важные подробности о том, как использовать эту мощную структуру данных

Словарь – это полезная структура данных, которая позволяет хранить пары ключ-значение. Вы можете эффективно получить доступ к значению из словаря, используя его ключ

Словари в C# поддерживают такие действия, как удаление значения или итерация по всему набору значений

Что такое словарь в C#?

Словарь в C# – это одна из самых важных структур данных, о которых вы можете узнать. Он немного похож на структуру данных Java HashMap. Его ключи должны быть уникальными, но они могут быть практически любого типа. В простом словаре используются скалярные значения

Например, в этом наборе данных в качестве ключа указан идентификатор домашнего животного, а в качестве значения – его кличка:

1001'Mia'},
1002'Oscar'},
1003'Birdie'},
1004'Bluey'},
1005'Leo'},
1006'Travis'

Эта структура позволяет получить доступ к данным, используя конкретный ключ, который ссылается на запись. Например, вы можете получить запись со значением Birdie , сославшись на нее с помощью ключа поиска 1003

Как создать словарь

Чтобы создать словарь, необходимо указать тип объекта как для ключа, так и для значения

  1. Создайте словарь. В этом примере ключ – целое число, а значение для каждой записи – строка.
    Dictionary<intstring> pets =newDictionary<intstring>();
  2. Вам потребуется использовать пространство имен System.Collections.Generic , которое содержит класс Dictionary. Убедитесь, что вы сделали это в верхней части вашего файла:
    usingSystem.Collections.Generic;
    

Как добавить элементы в словарь

Вы можете добавлять элементы в словарь во время или после его инициализации

  1. Вы можете добавлять элементы во время инициализации словаря. Для этого добавьте некоторые значения в фигурных скобках после оператора initial new Dictionary.
    Dictionary<intstring> pets =newDictionary<intstring>().
    
        {1001'Mia'},
        {1002'Oscar'},
        {1003'Birdie'},
        {1004'Bluey'},
        {1005'Leo'},
        {1006'Travis'
    };
  2. Если вы уже создали словарь, вы можете использовать встроенный метод словаря Add().
    pets.Add(1007'Snowy');

Вы не можете добавить значение для ключа, который уже существует. Если вы попытаетесь это сделать, вы получите исключение ArgumentException

Вы не можете использовать значение null в качестве ключа для записи в словаре. Однако вы можете хранить нулевое значение в словаре

Как добавить объекты в словарь

Если вы используете объектно-ориентированный стиль программирования, то у вас, скорее всего, есть хотя бы один класс, который вы используете для создания объектов. Скажем, у вас есть класс, в котором хранятся сведения о домашних животных:

Вы можете добавить объекты, созданные из этого класса, в словарь

  1. Убедитесь, что вы создаете словарь с типом объекта Pet, указанным для значения.
    Dictionary<int, Pet> petObjects =newDictionary<int, Pet>();
  2. Создайте объект домашнего животного.
    Pet mia =newPet(1001'Mia'newDateTime(201029),9. 0
       newDateTime(20230502));
  3. Добавьте новый объект домашнего животного в словарь.
    petObjects.Add(1001, mia);

Как получить доступ к элементу в словаре

Вы можете получить доступ к элементу в словаре с помощью ключа

  1. Используйте имя переменной для словаря, за которым следует ключ, заключенный в квадратные скобки. Это вернет объект, хранящийся в данной части словаря.
    varpet = petObjects 1001 ;
    Console.WriteLine(pet.name);

Как итерировать словарь

Для итерации по словарю можно использовать цикл foreach :

  1. Используйте цикл foreach для итерации по каждой паре ключ-значение в словаре. Предполагая, что вы назвали свой итератор entry , вы можете получить доступ к ключу и значению, используя entry.Key и entry.Value.
    foreach(KeyValuePair<int, Pet> entryinpetObjects).
    
        // print the key
        Console.WriteLine(entry.Key);
      
        // print the name of the object for that record
        Console.WriteLine(entry.Value.name);
    

Как обновить элемент в словаре

Вы можете обновить элемент, перезаписав его значение в словаре

  1. Если в вашем словаре есть простые типы объектов, вы можете перезаписать значение записи напрямую.
    pets 1001  ='Maya'
  2. Если вы добавили объекты в свой словарь, вы можете перезаписать значение на совершенно новый объект.
    Pet bunny =newPet(1001'Bunny'newDateTime(2021),3. 0newDateTime(2021));
    petObjects 1001  = bunny;
  3. Если у вас есть объект в словаре, вы также можете обновить одно свойство. Вы можете перезаписать значение свойства напрямую или использовать сеттер.
    petObjects 1001.name ='Maya'
    // OR
    petObjects 1001.setName('Maya');
    

Как удалить элемент в словаре

Вы можете выбрать удаление одного элемента или всех элементов

  1. Чтобы удалить один элемент, используйте встроенный метод словаря Remove(). В качестве аргумента введите ключ записи, которую вы хотите удалить.
    petObjects.Remove(1002);
  2. Чтобы удалить все элементы в словаре, используйте встроенный метод Clear() словаря
    petObjects.Clear();

Структуры данных в C#

В этом учебнике рассматривается, как создать словарь в C# и как добавлять элементы в словарь. Кроме того, было рассмотрено, как обновлять, удалять и выполнять итерации по словарю

Если вы хотите расширить свой словарный запас структур данных, вы можете начать изучать более продвинутые структуры данных. Некоторые примеры таких структур включают кучу Фибоначчи, дерево AVL или красно-черное дерево

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий