Returns the single element that satisfies test
.
Checks all elements to see if test(element)
returns true.
If exactly one element satisfies test
, that element is returned.
Otherwise, if there are no matching elements, or if there is more than
one matching element, a StateError
is thrown.
Source
E singleWhere(bool test(E element)) { int length = this.length; E match = null; bool matchFound = false; for (int i = 0; i < length; i++) { E element = elementAt(i); if (test(element)) { if (matchFound) { throw IterableElementError.tooMany(); } matchFound = true; match = element; } if (length != this.length) { throw new ConcurrentModificationError(this); } } if (matchFound) return match; throw IterableElementError.noElement(); }