この質問への回答を投稿しました。最後に、String.Split() が string[] ではなく IEnumerable<string> を受け入れる方法についての非常に短い暴言を含めます。
それは私に考えさせました。他のすべてが継承する基本 Object クラスが IEnumerable の既定の実装を提供し、コレクション クラスなどで何か他のことを行うためにオーバーライドされない限り、すべてが正確に 1 つのアイテム (それ自体) に対して Enumerator を返すようになったとしたらどうでしょう。
String.Split() のようなメソッドが配列ではなく IEnumerable を受け入れた場合、単一の文字列を関数に渡すことができ、セパレーター配列の作成に多くのことをする必要がなく、機能するという考えです。
これを行わない理由はいろいろあると思いますが、少なくともすべてが IEnumerable を実装している場合、実装がデフォルトから逸脱しているいくつかのクラスは、特定のシナリオで予想とは異なる動作をする可能性があります。しかし、それでも楽しい練習になると思いました。他にどのような結果が生じるでしょうか?