C++から来ました。勉強中です。
C++で配列や線形リストなどのコレクションを汎用的に受け取る関数は、
template<typename InputIterator> void func(InputIterator first, InputIterator last) { ... }
という感じでイテレータを使うのが常識だと思いますが、C#ではどうするのが一般的でしょうか。
.NET Frameworkのライブラリで複数オブジェクトを引数に取るメソッドを参考にすると、
配列のみ受け付けるメソッドもあれば、ICollectionだったり、IEnumerableだったり、可変長引数だったり、
なんか統一されてない気がして、悩んでます。

あとどうでもいいんですが、配列のLengthとICollectionのCountは、なぜ名前を統一しなかったんですかね…