Изисквания: Прочетете техническите блогове на други хора, открийте, че някои колекции наричат метода 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 loop, за да достъпиш групираните резултати. За разлика от GroupBy, ToLookup е незабавно действие, което веднага изпълнява групиращото действие и връща резултата при извикване.
Пример: Ученик е в клас, а класът съответства на няколко ученици. Колекцията на учениците съдържа информация за класа, а учениците от всеки клас (или определен клас) се извеждат според класовите групи.
Кодът е следният:
Както е показано по-долу:
Препратка:Входът към хиперлинк е видим.
|