insert3 method
Inserts three elements into the iterable at the specified index.
Takes the specified elements and inserts them into the iterable at the
position index
.
If index
is less than zero, an ArgumentError is thrown.
If iteration of this iterable is exausted before the position index
is reached, a RangeError is thrown.
Implementation
Iterable<T> insert3(int index, T v1, T v2, T v3) sync* {
if (index == 0) {
yield* prepend3(v1, v2, v3);
return;
}
if (index < 0) {
throw ArgumentError('Parameter "index" must be greater than zero.');
}
final iterator = this.iterator;
var i = 0;
while (iterator.moveNext()) {
if (i == index) {
yield v1;
yield v2;
yield v3;
}
yield iterator.current;
i++;
}
if (index >= i) {
throw RangeError.index(index, this, null, null, i);
}
}