コードは単にIEnumerable<>
インターフェースは共変である以下
DoSomething(IEnumerable<IMyInterface> sequence)
DoSomething<T>(IEnumerable<T> sequence) where T : IMyInterface
のいずれかにあなたの方法を変更(追加、削除、またはインデックスでアクセスしていない)メソッド内でシーケンスを反復された場合(AS .NET 4)(最初のオプション)。または、C#3を使用している場合は後者の署名を使用できます。
それ以外の場合は、インデックス処理が必要な場合は、渡す前にリストを変換します。呼び出しでは、後者の署名はあなたができるようになる何
// invocation using existing method signature
DoSomething(yourList.Cast<IMyInterface>().ToList());
// or updating method signature to make it generic
DoSomething<T>(IList<T> list) where T : IMyInterface
がある可能性がありますもサポートすることで追加するか(呼び出し場所で目に見える)リストに削除し、そしてそれはまた、あなたがせずにリストを使用できるようになり最初にそれをコピーします。
でも、あなたがしていることがすべてループの中で繰り返されているのであれば、私はメソッドIEnumerable<>
を好むでしょう。
あなたのコードは何ですか? – talnicolas