interleave<T> static method

List<T> interleave<T>(
  1. Iterable<T> list,
  2. T separator
)

Returns list with separator inserted between every pair of elements.

Useful for building widget children with separators:

Column(children: Arr.interleave(tiles, const Divider()));

Implementation

static List<T> interleave<T>(Iterable<T> list, T separator) {
  final source = list.toList();
  if (source.length <= 1) return source;
  return [
    for (var i = 0; i < source.length; i++) ...[
      if (i > 0) separator,
      source[i],
    ],
  ];
}