给定以下类型:
public interface IMyClass { }
public class MyClass : IMyClass { }
我想知道如何将 a 转换List<MyClass>
为 a 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 解决方案,但为了完整起见,我也很乐意看到使用更新框架版本的更优雅的解决方案。)