IEnumerable,ICollection,IList,List之间的区别
2016-06-21 16:38
441 查看
做C#的同学们,都知道,一类只能有一个继承类,但可以实现多个接口。这句话就告诉我们:IEnumerable,ICollection,IList,List区别了
// 摘要: // 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。 // // 类型参数: // T: // 要枚举的对象的类型。 [TypeDependency("System.SZArrayHelper")] public interface IEnumerable<out T> : IEnumerable { // 摘要: // 返回一个循环访问集合的枚举器。 // // 返回结果: // 可用于循环访问集合的 System.Collections.Generic.IEnumerator<T>。 IEnumerator<T> GetEnumerator(); } // 摘要: // 定义操作泛型集合的方法。 // // 类型参数: // T: // 集合中元素的类型。 [TypeDependency("System.SZArrayHelper")] public interface ICollection<T> : IEnumerable<T>, IEnumerable public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
首先我看看 IEnumerable: IEnumerable<T> 实现IEnumerable接口方法,那IEnumberable做什么的,其实就提高可以循环访问的集合。说白了就是一个迭代。 再来看看ICollection: 原来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>
相关文章推荐
- Android内存优化大全(中)
- Spring3.2.0之后各个版本完整包下载地址
- Java函数参数类型后添加三点的含义与用法
- python 中判断变量是否定义方法
- Spring注解@Autowired 和@Resource的区别
- C002-CPP-函数集合
- MySQL基础操作
- u3d native render
- WGS84坐标系转火星坐标系
- 《Spring实战》学习笔记-第六章:web视图解析
- ffmpeg android 移植编译出现的问题,求解
- 【问题排查记录】Field 'id' doesn't have a default value;
- 对比Python中__getattr__和 __getattribute__获取属性的用法
- Win10怎么“关闭下载游戏信息”
- oralce有关建表,建序列,建触发器,建存储过程,建job定时任务小例子,仅供本人参考
- [Java学习] 对Java的面对对象编程中对象和引用以及内部类的理解
- Hadoop 核心编程之 HDFS 的文件操作
- 自动化测试
- Hadoop 核心编程之 HDFS 的文件操作
- elf文件中的.plt .rel.dyn .rel.plt .got .got.plt的关系