A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hongiqnglik 中级黑马   /  2013-8-12 21:43  /  1215 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#基础中,List与IList的区别是什么?

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

4 个回复

倒序浏览
在效率上又没差别  推荐还是用LIST<T>泛型  它仅仅是所有泛型类型的接口,并不实用除非你用来绑定数据源,IList<T>可以胜任`显示数据不需要怎么处理
回复 使用道具 举报
1、List<T>是一个类,IList<T>是一个接口。类负责功能的实现,而接口则是负责功能的定义。它们的区别本质上也就是类和接口的区别;
2、IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,那么使用IList<T>完全可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了;
3、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间.
4、IList <>是个接口,定义了一些操作方法这些方法要你自己去实现;List <>是泛型类,它已经实现了IList <>定义的那些方法;
例如:
IList <Class1> IList1 =new List <Class1>();
List <Class1> List1 =new List <Class1>();
这两行代码,从操作上来看,实际上都是创建了一个List<Class1>对象的实例,也就是说,他们的操作没有区别。
只是用于保存这个操作的返回值变量类型不一样而已。
所以也可以这样理解,这两行代码的目的不一样。
List <Class1> List11 =new List <Class1>();
是想创建一个List<Class1>,而且需要使用到List<T>的功能,进行相关操作。
而IList <Class1> IList11 =new List <Class1>();
只是想创建一个基于接口IList<Class1>的对象的实例,只是这个接口是由List<T>实现的。所以它只是希望使用到IList<T>接口规定的功能而已。

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
学习了啊~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马