это очень похоже на функциональное программированиекстати, о ФП стайл, посмотрите как трансформируется исходный код автора тут https://qna.habr.com/q/782265?e=9331293#answer_ite...
static void print(this IEnumerable<string> sa) тут просто - и обычный массив, и List<>, имеют дефолтные методы ToEnumerable<>() по этому очень универсальное дополнение..
ToList() точно лишний ))