groupConsecutive<T> static method

List<List<T>> groupConsecutive<T>(
  1. List<T> items
)

Implementation

static List<List<T>> groupConsecutive<T>(List<T> items) {
  if (items.isEmpty) return [];

  final List<List<T>> result = [];
  List<T> currentGroup = [items.first];
  for (int i = 1; i < items.length; i++) {
    if (items[i] == items[i - 1]) {
      currentGroup.add(items[i]);
    } else {
      result.add(currentGroup);
      currentGroup = [items[i]];
    }
  }

  // add the last group
  result.add(currentGroup);

  return result;
}