Enumerable.SelectMany
- ключ к монаде IEnumerable
, так же как ее эквивалент Хаскелла, concatMap
, - ключ к монаде списка Хаскелла.
Как выясняется, ваш вопрос направлен прямо в глубину глубокого аспекта информатики.
Вы захотите быть осторожнее со своей формулировкой, потому что Aggregate
означает нечто очень отличное от SelectMany
- даже противоположное. Aggregate
объединяет IEnumerable
значений в одно значение (возможно, другого типа), в то время как SelectMany
un объединяет IEnumerable
значений в еще большее количество значений (возможно, другого типа).