C#中IList<T>与List<T>的区别深入解析
写代码时对:
IListIList11=newList();
ListList11=newList();
有所疑惑,于是在网上搜索一下,很受启发,于是收藏下来,但对部分观点不敢苟同,用红色字体标明我的看法!
首先IList泛型接口是ICollection泛型接口的子代,并且是所有泛型列表的基接口。
它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,IList可以胜任。
不过,更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList就爱莫能助了。
1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间.
2、IList<>是个接口,定义了一些操作方法这些方法要你自己去实现,List<>是泛型类,它已经实现了IList<>定义的那些方法
IListIList11=newList();
ListList11=newList();
这两行代码,从操作上来看,实际上都是创建了一个List对象的实例,也就是说,他们的操作没有区别。
只是用于保存这个操作的返回值变量类型不一样而已。
那么,我们可以这么理解,这两行代码的目的不一样。
ListList11=newList();
是想创建一个List,而且需要使用到List的功能,进行相关操作。
而IListIList11=newList();
只是想创建一个基于接口IList的对象的实例,只是这个接口是由List实现的。所以它只是希望使用到IList接口规定的功能而已
相关文章
- C# 远程唤醒(远程开机)
- C# 中List与json字符串的相互转换「建议收藏」
- java list 转json 字符串_Java之JSON字符串与List集合之间相互转换
- C# List排序_wpf listview 排序
- LIST-PROCESSING用法 ABAP任意时刻进行List输出_SAP详解编程语言
- C#属性(Property)
- Redis如何清空List:技巧分享(redis清空list)
- 深入浅出Redis的List数据结构遍历(遍历redis list)
- 监测redis List动态稳定性突破极限(监听redis list)
- Oracle助力C开发实战指南(c# oracle帮助类)
- C结合64位Oracle提升效率的有效之道(c# 64 oracle)
- 简单快速修改Redis List技巧(修改redis的list)
- 从Redis读取List数据简单又高效(从redis读取list)
- Redis中List实现快速数据查找(redis 选择list)
- C#Winform禁止用户调整ListView的列宽
- C#中List〈string〉和string[]数组之间的相互转换
- C#SendKeys使用方法介绍
- 关于C#中DateTime常用方法概述
- C#读取指定路径配置文件的方法
- 使用C#实现RTP数据包传输参照RFC3550
- C#中实现任意List的全组合算法代码
- C#串口通信程序实例详解
- C#List中FindAll用法的一些简单示例
- js模拟C#中List的简单实例
- c#使用ManagedWifi查看当前Wifi信号并选择wifi的示例
- C#配置文件Section节点处理总结
- C#中Dictionary的作用及用法讲解
- C#字符串的截取函数用法总结
- C#中私有构造函数的特点和用途实例解析
- C#的WebBrowser操作frame实例解析
- C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)