次のタイプが与えられます:
public interface IMyClass { }
public class MyClass : IMyClass { }
どうすればaをに変換できList<MyClass>
ますList<IMyClass>
か?共分散/反変性のトピックについては完全には明確ではありませんが、そのためにリストを単純にキャストすることはできないことを理解しています。
私はこの些細な解決策しか思いつかなかった。優雅さを欠き、資源を浪費する:
...
public List<IMyClass> ConvertItems(List<MyClass> input)
{
var result = new List<IMyClass>(input.Count);
foreach (var item in input)
{
result.Add(item);
}
return result;
}
....
どうすればよりエレガントでパフォーマンスの高い方法でそれを解決できますか?
(.NET 2.0ソリューションが必要ですが、完全を期すために、新しいフレームワークバージョンを使用したより洗練されたソリューションも見たいと思います。)