Цепочка из коллекции в Dart
У готовой коллекции where и map не копируют
элементы в новую структуру, а открывают ленивый вид на те
же данные. Дальше шаги пишут так же, как в цепочке
преобразований у списка.
Для списка строк можно поднять регистр каждой строки и в конце снова получить список:
final words = ["api", "log", "io"];
final upper = words
.map((w) => w.toUpperCase())
.toList();
print(upper);
Тот же прием работает у множества. Порядок обхода зависит от типа коллекции, а отсортировать элементы можно уже после сбора в список:
final ids = {3, 1, 2};
final ordered = ids.map((n) => n * 2).toList()..sort();
print(ordered);
Конечный toList материализует результат.
Исходный список или множество при этом не меняется -
меняется только новая коллекция, которую вернул
конец цепочки.
Дан список строк ["go", "rust", "kotlin"].
Постройте цепочку, оставьте строки длиннее трех
символов и соберите их в список. Выведите результат.
Дано множество {5, 12, 8}. Через where
получите список четных чисел в порядке возрастания.
Выведите его.