Организуйте данные с помощью словаря <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>
упростить задачи управления данными в приложениях.