Интерфейс IGrouping
Интерфейс IGrouping<TKey, TElement> расширяет
IEnumerable<TElement>
и добавляет свойство Key.
Его возвращает GroupBy.
Синтаксис
foreach (IGrouping<TKey, T> g in source.GroupBy(x => key))
{
TKey key = g.Key;
}
Пример
Давайте обойдём группы и выведем ключ и число элементов:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
foreach (IGrouping<int, int> g in nums.GroupBy(n => n % 2))
{
Console.WriteLine(g.Key);
Console.WriteLine(g.Count());
}
}
}
Результат выполнения кода:
"1
3"