Вимоги: Читайте технічні блоги інших людей, дізнайтеся, що деякі колекції називають метод ToLookup, цей метод не був використаний, а потім запитуйте відповідні матеріали, щоб дізнатися про використання цього розширення. Метод ToLookup повертає значення ToLookup<TSource, TKey> словник «один до багатьох» для відображення ключів у сукупність значень.
GroupBy проти ToLookup
GroupBy та ToLookup — це обидва методи розширення LINQ для групування колекцій, і головна різниця між ними полягає у типі повернення та використанні.
Метод GroupBy повертає об'єкт IEnumerable<IGrouping<TKey, TElement>>, де TKey — тип, що представляє ключ групування, а TElement — тип, що представляє тип елемента. Цей метод групує колекцію відповідно до заданого селектора клавіш і повертає результат групування у вигляді послідовності об'єктів IGrouping<TKey, TElement>. Об'єкти IGrouping<TKey, TElement> представляють колекцію елементів з одним ключем. Ви можете використовувати цикли Foreach або LINQ-запити для ітерації згрупованих результатів. Метод GroupBy — це операція із затримкою виконання, яка виконує саму операцію групування лише тоді, коли ви починаєте переглядати її результати.
Метод ToLookup повертає об'єкт ILookup<TKey, TElement>, де TKey — тип, що представляє ключ групування, а TElement — тип, що представляє тип елемента. Метод групує колекцію відповідно до заданого селектора ключа і повертає результат групування як об'єкт ILookup<TKey, TElement>. ILookup<TKey, TElement> об'єкти представляють колекцію елементів з одним ключем. Ви можете скористатися індексатором або циклом Foreach, щоб отримати доступ до згрупованих результатів. На відміну від GroupBy, ToLookup — це негайна дія, яка одразу виконує групування і повертає результат при виклику.
Приклад: Учень перебуває в класі, і клас відповідає кільком учням. Колекція учнів містить інформацію про клас, а учні кожного класу (або визначеного класу) виводяться відповідно до груп класів.
Код виглядає так:
Як показано нижче:
Посилання:Вхід за гіперпосиланням видно.
|