c# – 为什么IList <>具有比List <>更少的功能?

前端之家收集整理的这篇文章主要介绍了c# – 为什么IList <>具有比List <>更少的功能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
要使用ConvertAll()这么大的功能,我必须将IList转换为List,这很痛苦.

解决方法

请注意,List<>是IList<>的实现具有实际存储,即它在后台保存阵列.通常,IList<可以代替别的东西.在db4o和 linqsql中,您的IList&可以指向查询,即访问列表将触发数据库操作.

这样,你可以执行myList.Skip(600).Take(20);执行分页,只有在这一步才能执行实际的查询.列表<>包含一百万条记录将是巨大的,而可能有IList有一个巨大的计数,但不要吃大量的内存 – 只要你不访问元素.

ConvertAll将要求每个对象都被实例化,因此这是一项昂贵的操作.因此,最好使操作显式,并强制您检索接口的特定实现.显然,转换要求所有的对象都被实例化,所以没有任何好处在懒惰地做.

猜你在找的C#相关文章