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

Метод singleWhere

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

Синтаксис

iterable.singleWhere(test, [orElse])

Пример

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

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

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

3

Пример

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

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

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

Unhandled exception: Bad state: No element

Пример

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

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

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

-1

Пример

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

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

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

Unhandled exception: Bad state: Too many elements

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

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