考慮以下幾種類型:鑄造名單<T> - 協方差/逆變問題
public interface IMyClass { }
public class MyClass : IMyClass { }
我不知道如何可以轉換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的解決方案,但爲了完整,我會很樂意使用新版本的框架,也看到了更多的優雅的解決方案。)
這是一種偷偷使用的協方差;非常好。 – Ani 2011-02-08 10:25:52