ToLookup в LINQ
Метод ToLookup за один проход собирает группы
в память. По ключу сразу доступна последовательность
элементов, тип результата - ILookup. Пройти
по группам можно несколько раз, источник заново
не читается.
Слова "ab" и "cd" попадают в группу длины 2. В ней два элемента:
string[] words = ["a", "ab", "cd"];
var lk = words.ToLookup(w => w.Length);
Console.WriteLine(lk[2].Count());
Обращение к ключу без элементов возвращает пустую
группу, а не null. Для пустого массива
ToLookup даст lookup без ключей:
string[] empty = [];
var lk = empty.ToLookup(w => w.Length);
Console.WriteLine(lk.Count);
Console.WriteLine(lk[99].Count());
Разложите названия городов по первой букве и выведите, сколько получилось групп.
Обратитесь к букве, которой среди городов нет, и выведите, сколько элементов нашлось.