toMap<K, V> method

Map<K, V> toMap<K, V>({
  1. K key(
    1. E element
    )?,
  2. V value(
    1. E element
    )?,
})

Returns an Map from an Iterable.

For example, the expression

['a', 'bb', 'ccc'].toMap(
  key: (each) => each[0],
  value: (each) => each.length,
)

converts the input Iterable to a Map:

{'a': 1, 'b': 2, 'c': 3}

Implementation

Map<K, V> toMap<K, V>(
    {K Function(E element)? key, V Function(E element)? value}) {
  final keyProvider = key ?? (element) => element as K;
  final valueProvider = value ?? (element) => element as V;
  return {
    for (final element in this) keyProvider(element): valueProvider(element),
  };
}