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 value)) { E result = null; bool foundMatching = false; for (E element in this) { if (test(element)) { if (foundMatching) { throw IterableElementError.tooMany(); } result = element; foundMatching = true; } } if (foundMatching) return result; throw IterableElementError.noElement(); }