For-element в списке
For-element в списке позволяет генерировать элементы
коллекции на основе цикла прямо внутри литерала
списка. В первом параметре мы указываем переменную-счетчик,
во втором - коллекцию или диапазон для перебора.
Для каждого элемента коллекции выполняется выражение
перед ключевым словом for, результат которого
попадает в итоговый список.
Синтаксис
[for (var i in collection) expression]
Пример
Давайте сгенерируем список квадратов чисел
от 1 до 5:
void main()
{
List<int> res = [for (int i = 1; i <= 5; i++) i * i];
print(res);
}
Результат выполнения кода:
[1, 4, 9, 16, 25]
Пример
Давайте переберем элементы существующего списка и создадим новый список с удвоенными значениями:
void main()
{
List<int> src = [1, 2, 3, 4, 5];
List<int> res = [for (int el in src) el * 2];
print(res);
}
Результат выполнения кода:
[2, 4, 6, 8, 10]
Пример
For-element можно комбинировать с условием if,
чтобы отфильтровать элементы. Давайте оставим
только четные числа:
void main()
{
List<int> res = [
for (int i = 1; i <= 10; i++)
if (i % 2 == 0) i
];
print(res);
}
Результат выполнения кода:
[2, 4, 6, 8, 10]
Пример
Давайте сгенерируем список строк на основе существующего списка:
void main()
{
List<String> src = ['a', 'b', 'c', 'd', 'e'];
List<String> res = [for (String el in src) el + '!'];
print(res);
}
Результат выполнения кода:
["a!", "b!", "c!", "d!", "e!"]