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

Метод where

Метод where класса Iterable фильтрует элементы коллекции и возвращает новую коллекцию, в которую попадают только те элементы, для которых переданная функция-предикат вернула true. Исходная коллекция при этом не изменяется.

В первый параметр метода мы передаем функцию, которая принимает текущий элемент коллекции и возвращает bool. Если функция возвращает true - элемент попадает в результат, если false - элемент пропускается. Метод возвращает ленивый Iterable, то есть фильтрация выполняется только в момент обращения к элементам.

Синтаксис

iterable.where(bool Function(T element) test)

Пример

Давайте отфильтруем список чисел и оставим только четные:

void main() { Iterable<int> numbers = [1, 2, 3, 4, 5]; Iterable<int> res = numbers.where((int num) => num % 2 == 0); print(res.toList()); }

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

[2, 4]

Пример

Давайте отфильтруем список строк и оставим только строки длиной больше 1:

void main() { Iterable<String> strings = ['abcde', 'a', 'ab', 'b', 'abc']; Iterable<String> res = strings.where((String str) => str.length > 1); print(res.toList()); }

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

["abcde", "ab", "abc"]

Пример

Метод where возвращает ленивую коллекцию, поэтому к результату можно сразу применять другие методы, например map:

void main() { Iterable<int> numbers = [1, 2, 3, 4, 5]; Iterable<int> res = numbers .where((int num) => num > 2) .map((int num) => num * 10); print(res.toList()); }

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

[30, 40, 50]

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

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