Следующая цепочка map
- filter
берет список чисел и удваивает их, фильтрует результаты, используя некоторый предикат p
, затем возводит в квадрат те, которые остаются:
getNumbers().map(x => x * 2).filter(x => p(x)).map(x => x ** 2)
Идиомати c Python эквивалент требует понимания вложенного списка:
[y ** 2 for y in [x * 2 for x in getNumbers()] if p(y)]
Как бы вы написали это в C#, используя LINQ? Это также требует вложенности?