Метод contains
- Object? element
Является ли коллекция содержит элемент, равный element.
Эта операция будет проверять каждый элемент в порядке, чтобы он был равен element, если у него нет более эффективного способа найти элемент, равный element.
Равенство, используемое для определения того, element равен элементу итератора, по умолчанию является Object.== элемента.
Некоторые типы итерируемых объектов могут использовать другое равенство для элементов. Например, Set может иметь настраиваемое равенство (см. Set.identity), которое использует его contains. Аналогично, Iterable, возвращаемый вызовом Map.keys, должен использовать то же равенство, что и Map для ключей.
Пример:
final gasPlanets = <int, String>{1: 'Jupiter', 2: 'Saturn'};
final containsOne = gasPlanets.keys.contains(1); // true
final containsFive = gasPlanets.keys.contains(5); // false
final containsJupiter = gasPlanets.values.contains('Jupiter'); // true
final containsMercury = gasPlanets.values.contains('Mercury'); // false Реализация
bool contains(Object? element) {
int length = this.length;
for (int i = 0; i < length; i++) {
if (this[i] == element) return true;
if (length != this.length) {
throw ConcurrentModificationError(this);
}
}
return false;
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-collection/ListMixin/contains.html