Синтаксис:
Давайте разберем и разберем каждый компонент, представленный в следующем синтаксисе функции C# ToDictionary, один за другим:
был продиктован '=' коллекция. ToDictionary ( ключселектор , элементСелектор ) ;
- Ключевое слово «var» здесь исключено, чтобы определить категорию типа результирующего словаря «dict». В большинстве случаев это Dictionary
, где K — тип ключа, а V — категория типа значения словаря. - Элемент «collection» представляет исходную коллекцию, которую вы хотите преобразовать в словарь «dict». Это может быть любой класс, реализующий интерфейс IEnumerable
, например список, массив или результат запроса. - Ключевое слово «keySelector» — это делегат или лямбда-выражение, которое указывает, как извлечь ключ из каждого элемента коллекции. Он получает элемент из коллекции в качестве аргумента и возвращает значение ключа для этого элемента. Ключ должен быть уникальным для каждого элемента коллекции, поскольку словари не могут иметь повторяющиеся ключи.
- Ключевое словоelementSelector относится к делегату или лямбда-выражению, которое определяет, как извлечь значение из каждого элемента коллекции. Он также получает элемент коллекции в качестве аргумента и возвращает значение этого элемента.
После выполнения функции ToDictionary у вас появится новый объект словаря, в котором каждый элемент коллекции представлен в виде пары ключ-значение.
Пример 1:
Давайте начнем работу с этим руководством заново, продемонстрировав использование функции ToDictionary в C# с помощью примера кода. Давайте пройдемся по этому шагу.
Код начинается с импорта необходимых пространств имен: System, System.Collections.Generic и System.Linq. Эти пространства имен предоставляют необходимые классы и методы расширения для работы с коллекциями и LINQ. Определен класс «Dummy», который содержит метод «Main» этой программы на C#.
Внутри метода Main создается список с именем L. Этот список содержит три строковых элемента, которые представляют названия различных духов по выбору пользователя. Метод ToDictionary вызывается в списке «L». Он преобразует список в словарь. Каждый строковый элемент в списке служит одновременно ключом и значением в результирующем словаре.
Словарь создается с помощью сравнения ключей без учета регистра с использованием параметра StringComparer.OrdinalIgnoreCase, который в основном используется для указания сравнения без учета регистра при проверке существования ключей. Оператор «if» проверяет, содержит ли словарь ключ «бомба», игнорируя его регистр. Если ключ найден, будет обработан фрагмент кода в разделе «if». Внутри блока «if» выполняется оператор Console.WriteLine («Bombshell существует»), который выводит на консоль сообщение «Bombshell существует».
используя систему ;с помощью системы. Коллекции . Общий ;
с помощью системы. Линк ;
класс Манекен
{
статический пустота Основной ( )
{
Список < нить > л '=' новый список < нить > ( ) { «БлэкОпиум» , 'Бомба' , «ГуччиФлора» } ;
был Парфюм '=' Л. ToDictionary ( Икс => Икс , Икс => истинный , Строковый компаратор. Порядковый номерИгнорироватьCase ) ;
если ( Духи. Содержит ключ ( 'бомба' ) )
{
Консоль. WriteLine ( «Бомба существует» ) ;
}
}
}
Поскольку словарь создается с использованием сравнения без учета регистра, ключ «бомба» соответствует фактическому ключу «бомба» в словаре. В результате на консоли выводится сообщение «Bombshell существует», как показано на следующем прикрепленном выходном изображении:
Пример 2:
В предыдущем примере кода мы продемонстрировали, как простую коллекцию можно преобразовать в словарь с помощью функции ToDictionary. Теперь мы перейдем к небольшому расширенному примеру кода C# для демонстрации использования функции C# ToDictionary. Давайте разберем код построчно.
Этот фрагмент кода иллюстрации начинается с добавления одних и тех же обязательных пространств имен: System, System.Collections.Generic и System.Linq. Эти пространства имен предоставляют необходимые классы и методы расширения для работы с коллекциями и LINQ для этого примера кода. Определен класс «Dummy», который является точкой входа.
Внутри метода Main языка C# формируется список с именем «L». Этот список содержит три объекта класса «Данные», которые представляют различные косметические продукты с их ценами и брендами. Каждый объект данных инициализируется с использованием синтаксиса инициализатора объекта. Свойствам «Цена» и «Бренд» каждого объекта присваиваются определенные значения.
А вот и метод ToDictionary. Он называется здесь, в списке «L». Он преобразует список в словарь, где свойство «Цена» используется в качестве ключа, а свойство «Бренд» — в качестве значения. Результирующий словарь присваивается переменной «Dic», как указано в следующем фрагменте кода. Цикл foreach исключается для вызова пар ключ-значение в словаре Dic.
Внутри цикла доступ к ключу и значению каждой пары осуществляется с помощью свойств «Key» и «Value» структуры KeyValuePair
Здесь класс «Данные» определяется двумя свойствами: «Цена» (целое число, представляющее цену косметического продукта) и «Бренд» (строка, представляющая торговую марку продукта).
используя систему ;с помощью системы. Коллекции . Общий ;
с помощью системы. Линк ;
класс Манекен
{
статический пустота Основной ( )
{
Список < Данные > л '=' новый список < Данные > ( )
{
новые данные { Цена '=' 13000 , Бренд '=' «Худа Бьюти» } ,
новые данные { Цена '=' 15000 , Бренд '=' «Шарлотта Телберри» } ,
новые данные { Цена '=' 11000 , Бренд '=' 'Нарс' }
} ;
Словарь < интервал , нить > декабрь '=' Л. ToDictionary ( п => п. Цена , п => п. Бренд ) ;
для каждого ( var v в Dic )
{
Консоль. WriteLine ( $ «Цена: {v.Key}, Бренд: {v.Value}» ) ;
}
}
}
данные класса
{
общественный интервал Цена { получать ; набор ; }
публичная строка Бренд { получать ; набор ; }
}
Когда код выполняется, он создает список объектов данных, преобразует этот список в словарь с помощью метода ToDictionary, а затем отображает пары ключ-значение словаря с помощью цикла foreach.
Вывод для этого примера кода представлен ниже. Он показывает цены и бренды косметических продуктов, которые хранятся в словаре на основе конкретных свойств, обеспечивая удобный способ организации и доступа к данным в парах ключ-значение. Вывод предыдущего кода показывает три записи словаря:
Заключение
В этом руководстве по C# показано использование метода C# ToDictionary с помощью некоторых простых и точных иллюстраций кода. Предлагая понятный и выразительный механизм описания пар ключ-значение, метод ToDictionary упрощает преобразование коллекции в словарь. Это мощная утилита C# для управления и преобразования данных.