Организуйте данные с помощью словаря <TKey, TValue>

Завершено

A Dictionary<TKey, TValue> — это универсальная коллекция в C#, которая хранит данные в виде пар "ключ-значение", где каждый ключ является уникальным и сопоставляется с определенным значением. Это идеально подходит для сценариев, требующих быстрого поиска на основе уникальных идентификаторов, таких как создание телефонной книги или сопоставление идентификаторов продуктов с ценами.

Определите и объясните назначение словаря<TKey, TValue> для организации пар "ключ-значение"

A Dictionary<TKey, TValue> относится к пространству имен System.Collections.Generic в C#. Он сохраняет данные в виде пар "ключ-значение", где каждый ключ является уникальным и сопоставляется с определенным значением. Эта структура идеально подходит для сценариев, когда быстрые поиски требуются на основе уникальных идентификаторов.

  • Ключи должны быть уникальными в словаре.
  • Значения могут быть любого типа, включая пользовательские объекты.

Класс Dictionary<TKey, TValue> предоставляет методы такие как Add для вставки новых пар и индексатор для доступа к значениям по их ключам.

Замечание

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

Добавление, извлечение и итерация с помощью пар "ключ-значение" в словаре<TKey, TValue>

Добавление пар "ключ-значение" в словарь можно сделать с помощью Add метода или инициализатора индекса. Получение значений является простым с помощью ключа, и итерация возможна с помощью циклов.

Добавление пар "ключ-значение"

Вы можете инициализировать словарь с помощью инициализаторов коллекций или Add метода:

var students = new Dictionary<int, string>
{
    { 101, "Ji-min Jo" },
    { 102, "Catalina Blaga" }
};

students.Add(103, "Milan Golob"); // Add a new key-value pair

foreach (var kvp in students)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}

// Expected output:
// Key: 101, Value: Ji-min Jo
// Key: 102, Value: Catalina Blaga
// Key: 103, Value: Milan Golob

Этот код инициализирует словарь с идентификаторами учащихся и именами, добавляет нового учащегося и выполняет итерацию по словарю для отображения всех пар "ключ-значение".

Получение значений

Доступ к значениям с помощью ключа:

var students = new Dictionary<int, string>
{
    { 101, "Ji-min Jo" },
    { 102, "Catalina Blaga" }
};

var student = students[101];
Console.WriteLine(student); // Outputs "Ji-min Jo"

// Expected output:
// Ji-min Jo

Этот код извлекает значение, связанное с ключом 101 , и отображает имя учащегося.

Итерация по парам "ключ-значение"

Используйте цикл foreach для перебора элементов словаря:

var students = new Dictionary<int, string>
{
    { 101, "Ji-min Jo" },
    { 102, "Catalina Blaga" },
    { 103, "Milan Golob" }
};

foreach (var kvp in students)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}

// Expected output:
// Key: 101, Value: Ji-min Jo
// Key: 102, Value: Catalina Blaga
// Key: 103, Value: Milan Golob

Этот код выполняет итерацию по всем парам "ключ-значение" в словаре и отображает каждый ключ и соответствующее значение.

Создание практических приложений, таких как телефонная книга или сопоставление идентификатора продукта к цене с помощью словаря<TKey, TValue>

Универсальность Dictionary<TKey, TValue> делает его подходящим для реальных приложений, таких как:

Телефонная книга

Сохранить имена контактов и номера телефонов:

var phonebook = new Dictionary<string, string>
{
    { "Ji-min Jo", "312-555-0100" },
    { "Catalina Blaga", "251-555-0101" }
};

Console.WriteLine(phonebook["Ji-min Jo"]); // Access Ji-min's phone number

// Expected output:
// 312-555-0100

В этом коде показано, как использовать словарь для хранения и получения номеров телефонов по имени.

Сопоставление идентификатора продукта с ценой

Сопоставлять идентификаторы продуктов с их ценами:

var productPrices = new Dictionary<int, decimal>
{
    { 201, 19.99m },
    { 202, 29.99m }
};

Console.WriteLine($"Product 201 costs ${productPrices[201]}");

// Expected output:
// Product 201 costs $19.99

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

В этих примерах показано, как Dictionary<TKey, TValue> упростить задачи управления данными в приложениях.