c# – 将具体类型的ICollection转换为具体类型接口的ICollection
作者:互联网
推荐ICollection< Bar>的推荐方法是什么? ICollection< IBar> Bar实施IBar的地方?
这很简单吗?
collection = new List<Bar>();
ICollection<IBar> = collection as ICollection<IBar>?
或者有更好的方法吗?
解决方法:
您必须转换列表中的每个项目并创建一个新项目,例如使用Cast
:
ICollection<IBar> ibarColl = collection.Cast<IBar>().ToList();
在.NET 4中,使用IEnumerable< T>的协方差:
ICollection<IBar> ibarColl = collection.ToList<IBar>();
ICollection<IBar> ibarColl = collection.ConvertAll(b => (IBar)b);
后者可能会更有效率,因为它事先知道大小.
标签:c,net,interface,icollection 来源: https://codeday.me/bug/20190623/1270619.html