Метод C# ToDictionary

Metod C Todictionary



Функция ToDictionary в C# — это функция расширения LINQ, которая позволяет преобразовать коллекцию данных в словарь, который предлагает понятный и практичный способ сопоставления сущностей с отдельными ключами и связанными значениями. Ему требуются два аргумента, два делегата или лямбда-выражения: один для выбора ключа и дополнительный для выбора значения для каждого объекта в коллекции. В этой статье мы будем использовать некоторые примеры кода C#, чтобы продемонстрировать использование функции ToDictionary.

Синтаксис:

Давайте разберем и разберем каждый компонент, представленный в следующем синтаксисе функции 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. Оператор функции Console.WriteLine выводит на консоль каждую пару ключ-значение. Вывод форматируется с использованием строковой интерполяции для отдельного отображения цены и информации о бренде.

Здесь класс «Данные» определяется двумя свойствами: «Цена» (целое число, представляющее цену косметического продукта) и «Бренд» (строка, представляющая торговую марку продукта).

используя систему ;

с помощью системы. Коллекции . Общий ;

с помощью системы. Линк ;

класс Манекен

{

статический пустота Основной ( )

{

Список < Данные > л '=' новый список < Данные > ( )

{

новые данные { Цена '=' 13000 , Бренд '=' «Худа Бьюти» } ,

новые данные { Цена '=' 15000 , Бренд '=' «Шарлотта Телберри» } ,

новые данные { Цена '=' 11000 , Бренд '=' 'Нарс' }

} ;

Словарь < интервал , нить > декабрь '=' Л. ToDictionary ( п => п. Цена , п => п. Бренд ) ;

для каждого ( var v в Dic )

{

Консоль. WriteLine ( $ «Цена: {v.Key}, Бренд: {v.Value}» ) ;

}

}

}

данные класса

{

общественный интервал Цена { получать ; набор ; }

публичная строка Бренд { получать ; набор ; }

}

Когда код выполняется, он создает список объектов данных, преобразует этот список в словарь с помощью метода ToDictionary, а затем отображает пары ключ-значение словаря с помощью цикла foreach.

Вывод для этого примера кода представлен ниже. Он показывает цены и бренды косметических продуктов, которые хранятся в словаре на основе конкретных свойств, обеспечивая удобный способ организации и доступа к данным в парах ключ-значение. Вывод предыдущего кода показывает три записи словаря:

Заключение

В этом руководстве по C# показано использование метода C# ToDictionary с помощью некоторых простых и точных иллюстраций кода. Предлагая понятный и выразительный механизм описания пар ключ-значение, метод ToDictionary упрощает преобразование коллекции в словарь. Это мощная утилита C# для управления и преобразования данных.