create<TSource, TKey, TValue> method

Lookup<TKey, TValue> create <TSource, TKey, TValue>(
  1. Iterable<TSource> source,
  2. TKey keySelector(
    1. TSource
    ),
  3. TValue valueSelector(
    1. TSource
    ),
  4. EqualityComparer<TKey> comparer
)

Implementation

static Lookup<TKey, TValue> create<TSource, TKey, TValue>(
  Iterable<TSource> source,
  TKey Function(TSource) keySelector,
  TValue Function(TSource) valueSelector,
  EqualityComparer<TKey> comparer,
) {
  ArgumentError.checkNotNull(source);
  ArgumentError.checkNotNull(keySelector);
  ArgumentError.checkNotNull(valueSelector);
  final lookup = Lookup<TKey, TValue>._internal(comparer);
  for (final item in source) {
    lookup.getGrouping(keySelector(item), true).add(valueSelector(item));
  }
  return lookup;
}