打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
我也说 IEnumerable,ICollection,IList,List之间的区别

做C#的同学们,都知道,一类只能有一个继承类,但可以实现多个接口。这句话就告诉我们:IEnumerable,ICollection,IList,List区别了


首先我看看 IEnumerable:



// 摘要:    //     公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。    //    // 类型参数:    //   T:    //     要枚举的对象的类型。    [TypeDependency("System.SZArrayHelper")]    public interface IEnumerable<out T> : IEnumerable    {        // 摘要:        //     返回一个循环访问集合的枚举器。        //        // 返回结果:        //     可用于循环访问集合的 System.Collections.Generic.IEnumerator<T>。        IEnumerator<T> GetEnumerator();    }


IEnumerable<T> 实现IEnumerable接口方法,那IEnumberable做什么的,其实就提高可以循环访问的集合。说白了就是一个迭代。


再来看看ICollection:



    // 摘要:    //     定义操作泛型集合的方法。    //    // 类型参数:    //   T:    //     集合中元素的类型。    [TypeDependency("System.SZArrayHelper")]    public interface ICollection<T> : IEnumerable<T>, IEnumerable    


原来ICollection<T> 同时继承IEnumerable<T>和IEnumerable两个接口,按我的理解就是,ICollection继续它们2个接口而且扩展了方法,功能强多了。
由原来的步枪变成半自动步枪


我们继续看IList:



public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable


 靠 IList 继承它们三个接口,怪不得功能这么多啊,那应该属于全自动步枪了


最后来看看List:


 



public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable


这个时候大家仔细看看,它们都是接口,只有List 是类,不仅实现它们的接口,而且还扩展了太多的方法给我利用。哇靠,几乎所有功能都能实现了,简直是激光步枪


按照功能排序:List<T> 《IList<T> 《ICollection<T>《IEnumerable<T>


按照性能排序:IEnumerable<T>《ICollection<T>《IList<T>《List<T>


那同学们,是不是可以根据自身的需求调用不能数组来实现功能,不要一味使用List,好了,送给一些不知道的同学们,大牛们,路过麻烦补充下,谢谢!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
IEnumerable的用法
Decorator装饰模式
C# ObservableCollection和List的区别
IList 接口与List的区别是什么?
C#集合
最佳实践集合(转 MSDN)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服