Метод indexWhere
Метод indexWhere возвращает индекс первого элемента списка, который удовлетворяет условию переданной функции. В первый параметр мы передаем функцию-предикат, которая принимает элемент списка и возвращает true или false. Во второй необязательный параметр мы передаем индекс, с которого нужно начать поиск. Если ни один элемент не удовлетворяет условию, метод возвращает -1.
Синтаксис
list.indexWhere(bool test(E element), [int start = 0])
Пример
Давайте найдем индекс первого элемента, который больше 2:
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
int res = numbers.indexWhere((element) => element > 2);
print(res);
}
Результат выполнения кода:
2
Пример
Давайте найдем индекс первого элемента, который равен 9. Так как такого элемента нет, метод вернет -1:
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
int res = numbers.indexWhere((element) => element == 9);
print(res);
}
Результат выполнения кода:
-1
Пример
Давайте начнем поиск не с начала списка, а с третьего индекса:
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
int res = numbers.indexWhere((element) => element > 1, 3);
print(res);
}
Результат выполнения кода:
3
Смотрите также
-
метод
indexOf,
который возвращает индекс первого вхождения элемента -
метод
lastIndexWhere,
который ищет индекс с конца списка -
метод
contains,
который проверяет наличие элемента в списке -
метод
removeWhere,
который удаляет элементы по условию