博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我也说 IEnumerable,ICollection,IList,List之间的区别
阅读量:7018 次
发布时间:2019-06-28

本文共 1560 字,大约阅读时间需要 5 分钟。

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

首先我看看 IEnumerable:

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

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

再来看看ICollection:

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

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

由原来的步枪变成半自动步枪

我们继续看IList:

public interface IList
: ICollection
, IEnumerable
, IEnumerable

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

最后来看看List:

 

public class List
: IList
, ICollection
, IEnumerable
, IList, ICollection, IEnumerable

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

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

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

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

转载地址:http://bbzxl.baihongyu.com/

你可能感兴趣的文章
使用FileWriter可以写UTF-8的解决方法
查看>>
fragment 传值
查看>>
maven webapp
查看>>
Thrift Java实战
查看>>
Web与IMS业务融合技术探讨
查看>>
Python 读取xml文件错误:ExpatError: not well-formed
查看>>
centos流量监控工具iftop的安装及使用
查看>>
分布式关系数据库测试
查看>>
oKit,你不能不知道的十个小技巧
查看>>
防止远程密码拦截破译,ssh验证和普通用户登录
查看>>
c++中的string常用函数用法总结
查看>>
请实现一个函数,把字符串中的每个空格替换成“%20”。
查看>>
我的友情链接
查看>>
centos6.5 二进制安装mysql5.6 遇到的问题
查看>>
一个在线编辑markdown文档的编辑器
查看>>
linux下双网卡的绑定
查看>>
Cacti与nagios结合所需插件的安装与报错处理
查看>>
jvm入门
查看>>
vc中,线程同步方法
查看>>
在sqlplus中将oracle的输出保存到文件中
查看>>