distinctBy<K> method

Iterable<T> distinctBy<K>(
  1. K keyOf(
    1. T
    )
)

Returns distinct elements by a derived key, preserving first-seen order.

[1, 2, 1, 3, 2].distinctBy((e) => e); // (1, 2, 3)

Implementation

Iterable<T> distinctBy<K>(K Function(T) keyOf) sync* {
  final seen = <K>{};
  for (final e in this) {
    if (seen.add(keyOf(e))) yield e;
  }
}