Returns the single element that satisfies test
.
Checks elements to see if test(element)
returns true. If exactly one element satisfies test
, that element is returned. If more than one matching element is found, throws StateError. If no matching element is found, returns the result of orElse
. If orElse
is omitted, it defaults to throwing a StateError.
E singleWhere(bool test(E element), {E orElse()}) { int length = this.length; E match; bool matchFound = false; for (int i = 0; i < length; i++) { E element = this[i]; if (test(element)) { if (matchFound) { throw IterableElementError.tooMany(); } matchFound = true; match = element; } if (length != this.length) { throw ConcurrentModificationError(this); } } if (matchFound) return match; if (orElse != null) return orElse(); throw IterableElementError.noElement(); }
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dart.dev/stable/2.5.0/dart-collection/ListMixin/singleWhere.html