最简单的方法可能是使用
ConvertAll:
List<IMyClass> converted = original.ConvertAll<IMyClass>(x => x);
即使您使用的是.NET 2,也可以使用lambda语法(如果使用的是VS2008或更高版本)。否则,总会有匿名方法:
List<IMyClass> converted = original.ConvertAll<IMyClass>( delegate (MyClass x) { return x; });在.NET 3.5中,您可以使用LINQ
Cast,
OfType甚至可以
Select:
var converted = original.Cast<IMyClass>().ToList();var converted = original.OfType<IMyClass>().ToList();var converted = original.Select(x => (IMyClass) x).ToList();
在.NET 4.0中
ToList,由于以下因素的协方差,您可以直接使用而无需中间强制转换
IEnumerable<T>:
var converted = original.ToList<IMyClass>();



