码迷,mamicode.com
首页 > 其他好文 > 详细

基础知识系列?IList ←vs→ List

时间:2016-06-06 23:47:35      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

 

原文地址→http://www.cnblogs.com/zbphot/archive/2011/11/04/2235933.html
1 IList接口→表示可按照索引单独访问的对象的非泛型集合。
1 IList 泛型接口是 ICollection 接口的子代,并且是所有非泛型列表的基接口。 
2 IList 实现有三种类别:只读、固定大小、可变大小。无法修改只读 IList。
3 固定大小的 IList 不允许添加或移除元素,但允许修改现有元素。
4 可变大小的 IList 允许添加、移除和修改元素。--摘自msdn
-----
并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,IList可以胜任。
1 List 泛型类→ 表示可通过索引访问的对象的强类型列表。
2 提供用于对列表进行搜索、排序和操作的方法。 !!!注意:此类在 .NET Framework 2.0 版中是新增的。 --摘自msdn

 

1  List 类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList 泛型接口。
2  List 类既使用相等比较器又使用排序比较器。 
3  List 不保证是排序的。在执行要求 List 已排序的操作(例如 BinarySearch)之前,您必须对 List 进行排序。
4 可使用一个整数索引访问此集合中的元素。此集合中的索引从零开始。
5  List 接受 空引用(在 Visual Basic 中为 Nothing) 作为引用类型的有效值并且允许有重复的元素。--摘自msdn

 

根据msdn给出的定义:
很明显的一点就是
*IList<T>是个接口
*List<T>是一个类,泛型类

 

 1 *原文中我觉得是精华部分
 2 IList <>是个接口,定义了一些操作方法这些方法要你自己去实现,
 3 List <>是泛型类,它已经实现了IList <>定义的那些方法
 4 IList IList11 =new List ();
 5 List List11 =new List ();
 6 这两行代码,从操作上来看,实际上都是创建了一个List对象的实例,也就是说,他们的操作没有区别。
 7 只是用于保存这个操作的返回值变量类型不一样而已。
 8 那么,我们可以这么理解,这两行代码的目的不一样。
 9 List List11 =new List ();
10 是想创建一个List,而且需要使用到List的功能,进行相关操作。
11 而IList IList11 =new List ();
12 只是想创建一个基于接口IList的对象的实例,只是这个接口是由List实现的。
13 所以它只是希望使用到IList接口规定的功能而已。

 

1 接口实现松耦合...有利于系统的维护与重构...优化系统流程...鼓励使用接口,
2 这样可以实现功能和具体实现的分离.

 

1 当我们都去遍历IList和List的时候,注意我取的数据是1~1000之间,经过反复测试,IList的效率确实是要低一些。那就更不用说数据量更大的时候...

 

 

1 突然想起小学时期...
2 老师动不动就让我们抄课文...
3 最早的一些猿前辈据说也是在纸上手写代码...
4 没事抄抄msdn中的例子吧,应该不错...
5 总是说得多,做起来少...

 

基础知识系列?IList ←vs→ List

标签:

原文地址:http://www.cnblogs.com/love-zf/p/5565470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!