Я изучил вкрапленную функцию от Haskell и искал реализацию в c #.
Intersperse принимает 2 аргумента, источник IEnumerable и элемент T. Он возвращает IEnumerable с элементом, вставленным между каждым элементом источника.
Один из возможных вариантов использования - поместить произвольное целое число в список целых чисел, например:
// returns: {1, 0, 2, 0, 3}
(List<int>() {1, 2, 3}).Intersperse(0);
Это общий случай string.Join (...).