Func<int, int>
означает, что func
- это функция с одним параметром типа int и результатом типа int. i
- это параметр. Функция записывает элемент массива в консоль и возвращает параметр без изменений.
Функция Where
возвращает все случаи, которые соответствуют данному предикату, ToArray
создает массив из IEnumerable, возвращаемый Where
(читайте о linq). e => e <= func(2)
- это функция с одним параметром типа int (таким же, как у типа коллекции) и с результатом типа bool. Вы можете написать это как обычную функцию:
bool Foo(int e) {
return e <= func(2);
}
И поскольку func
возвращает неизмененный параметр, он функционально равен
bool Foo(int e) {
return e <= 2;
}
но не обращая внимания на побочный эффект.