Метод lastWhere
Метод lastWhere класса Iterable
возвращает последний элемент коллекции,
который удовлетворяет заданному условию.
В первый параметр мы передаем функцию-предикат,
которая принимает элемент и возвращает
true или false. Метод перебирает
элементы и запоминает последний, для которого
предикат вернул true. Если ни один элемент
не подошел, возвращается значение второго
необязательного параметра orElse. Если же
параметр orElse не задан, выбрасывается
исключение.
Синтаксис
iterable.lastWhere(test, [orElse])
Пример
Давайте найдем последний элемент списка,
который больше 2:
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
int res = numbers.lastWhere((n) => n > 2);
print(res);
}
Результат выполнения кода:
5
Пример
Давайте найдем последний элемент списка,
который начинается с буквы c:
void main()
{
List<String> letters = ['a', 'b', 'c', 'd', 'e'];
String res = letters.lastWhere((s) => s == 'c');
print(res);
}
Результат выполнения кода:
"c"
Пример
Если ни один элемент не удовлетворяет условию,
можно вернуть значение по умолчанию через
второй параметр orElse:
void main()
{
List<int> numbers = [1, 2, 3, 4, 5];
int res = numbers.lastWhere((n) => n > 10, orElse: () => -1);
print(res);
}
Результат выполнения кода:
-1
Смотрите также
-
метод
firstWhere,
который возвращает первый подходящий элемент -
метод
where,
который возвращает все подходящие элементы -
метод
singleWhere,
который возвращает единственный подходящий элемент -
свойство
last,
которое возвращает последний элемент коллекции