编程语言
首页 > 编程语言> > c# – 将具体类型的ICollection转换为具体类型接口的ICollection

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>();

或与List.ConvertAll

ICollection<IBar> ibarColl = collection.ConvertAll(b => (IBar)b);

后者可能会更有效率,因为它事先知道大小.

标签:c,net,interface,icollection
来源: https://codeday.me/bug/20190623/1270619.html