# single property

E single
override

Checks that this iterable has only one element, and returns that element.

Throws a StateError if `this` is empty or has more than one element.

## Implementation

    E get single {
      if (length > 1) throw IterableElementError.tooMany();
      Iterator<E> it = iterator;
      if (!it.moveNext()) throw IterableElementError.noElement();
      E result = it.current;
      return result;
    }