РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
279 of 723 menu

Метод firstWhere

Метод firstWhere возвращает первый элемент коллекции, который удовлетворяет заданному условию. В первый параметр мы передаем функцию-предикат, которая проверяет каждый элемент. Во второй необязательный параметр мы передаем функцию, которая будет вызвана, если ни один элемент не удовлетворил условию. Если второй параметр не указан и совпадений нет, будет выброшено исключение StateError.

Синтаксис

iterable.firstWhere(test, [orElse])

Пример

Давайте найдем первый элемент списка, который больше 3:

void main() { List<int> numbers = [1, 2, 3, 4, 5]; int res = numbers.firstWhere((int n) => n > 3); print(res); }

Результат выполнения кода:

4

Пример

Давайте найдем первый элемент списка строк, который начинается с буквы 'c':

void main() { List<String> letters = ['a', 'b', 'c', 'd', 'e']; String res = letters.firstWhere((String s) => s == 'c'); print(res); }

Результат выполнения кода:

"c"

Пример

Давайте попробуем найти элемент, которого нет в списке, и передадим функцию orElse, чтобы избежать исключения:

void main() { List<int> numbers = [1, 2, 3, 4, 5]; int res = numbers.firstWhere( (int n) => n > 10, orElse: () => -1 ); print(res); }

Результат выполнения кода:

-1

Пример

Если не указать функцию orElse и совпадений не найдется, метод выбросит исключение. Давайте убедимся в этом:

void main() { List<int> numbers = [1, 2, 3, 4, 5]; try { int res = numbers.firstWhere((int n) => n > 10); print(res); } catch (e) { print('Not found'); } }

Результат выполнения кода:

"Not found"

Смотрите также

  • метод lastWhere,
    который возвращает последний подходящий элемент
  • метод singleWhere,
    который возвращает единственный подходящий элемент
  • метод where,
    который возвращает все подходящие элементы
  • свойство first,
    которое возвращает первый элемент коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить