groupByEx<TKey> method
a better version of groupBy that can be chained easily for multi-level groups
Implementation
Iterable<GroupedIterable<TKey, T>> groupByEx<TKey>(
TKey keySelector(T item),
) {
final res = <TKey, List<T>>{};
for (var item in this) {
(res[keySelector(item)] ??= <T>[]).add(item);
}
return res.entries.map((e) => GroupedIterable(e.key, e.value));
}