distinctBy<T, K> function

List<T> distinctBy<T, K>(
  1. Iterable<T> iterable,
  2. K key(
    1. T
    )
)

Returns unique values using a key function.

Implementation

List<T> distinctBy<T, K>(Iterable<T> iterable, K Function(T) key) {
  final seen = <K>{};
  final result = <T>[];

  for (final item in iterable) {
    final k = key(item);
    if (seen.add(k)) {
      result.add(item);
    }
  }

  return result;
}