.NET Frameworkには一般的な差異がないため、メソッドが複数の型を処理するように設計されている場合、System.Collectionインターフェイスの非一般的なバージョンを処理するメソッドを使用する方が「正しい」でしょうか。
理想的には、.NET 3.5に移行すると、これらのメソッドを拡張メソッドに変更するようにコードが変更されます。
この場合(IEnumerable)は、IEnumerable(非Generic)から派生しているため、汎用バージョンの実装の方が優れているため、どちらも利用可能です。
いいえ、より「正しい」ことは、複数のタイプを処理するメソッド自体を汎用にすることです。
私が見ることができる唯一の解決策は、記事のアドバイスに従い、メソッドをジェネリック メソッドにすることです。
しかし、それが拡張メソッドであることにどれだけ耐えられるかはわかりません。
「複数のタイプ」を定義します。たとえば、車と犬の両方を含むリストを意味しますか? それとも、車を含む 1 つのリストと犬を含む別のリストですか? 「特別な」ことをしているのでない限り、正しいことは、非汎用バージョンではなく汎用バージョンを実装することだと思います。