groupBy<T, K> function

Map<K, List<T>> groupBy<T, K>(
  1. List<T> list,
  2. K keySelector(
    1. T
    )
)

Implementation

Map<K, List<T>> groupBy<T, K>(List<T> list, K Function(T) keySelector) {
  Map<K, List<T>> result = {};

  for (var item in list) {
    var key = keySelector(item);
    result.putIfAbsent(key, () => []).add(item);
  }

  return result;
}