IListList的 区别(写得太好了).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IListList的 区别(写得太好了)

已经有很多人讨论过IList和List的区别,恩,我也赞同其中的一些观点,其实他们二者也是有优有劣的,看你着重用在哪个方面,先贴一下我赞同的意见,基本上也都是网友们总结的。 ? ? 首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,IList可以胜任。 其次, IList 是在 .net framework 2.0里面才支持的 ? 1. 不过,更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList就不太好使了。因为他的效率要慢。后面会一一讲到。 ? 2、IList 是个接口,定义了一些操作方法这些方法要你自己去实现,List 是泛型类,它已经实现了IList 定义的那些方法 IList IList11 =new List (); List List11 =new List (); 这两行代码,从操作上来看,实际上都是创建了一个List对象的实例,也就是说,他们的操作没有区别。只是用于保存这个操作的返回值变量类型不一样而已。 那么,我们可以这么理解,这两行代码的目的不一样。 List List11 =new List (); 是想创建一个List,而且需要使用到List的功能,进行相关操作。 而IList IList11 =new List (); 只是想创建一个基于接口IList的对象的实例,只是这个接口是由List实现的。所以它只是希望使用到IList接口规定的功能而已。 ? 3.接口实现松耦合...有利于系统的维护与重构...优化系统流程...鼓励使用接口,这样可以实现功能和具体实现的分离. ? ?这些说的都是有道理的,那么接刚才第一点的话题说,为什么说用到数据处理,或者排序IList就不太好使了呢。这个也是要根据数据量来的。我做了如下测试 ? ??????? public class TestClass ??????? { ??????????? public int Id ??????????? { ??????????????? get; ??????????????? set; ??????????? } ??????????? public string Name ??????????? { ??????????????? get; ??????????????? set; ??????????? } ??????? } ? ??????? static void Main(string[] args) ??????? { ??????????? ListTest(); ??????? } ? ? ??????? private static void ListTest() ??????? { ??????????? Stopwatch timer = new Stopwatch(); ??????????? timer.Start(); ??????????? ListTestClass list1 = new ListTestClass(); ??????????? for (int i = 0; i i++) ??????????? { ??????????????? TestClass tc = new TestClass(); ??????????????? tc.Id = i; ??????????????? tc.Name = Test Data + i; ??????????????? list1.Add(tc); ??????????? } ??????????? int count = 0; ??????????? foreach (var tc in list1) ??????????? { ??????????????? if (tc.Id = 1 tc.Id 1000) ??????????????? { ??????????????????? count++; ??????????????? } ??????????? } ??????????? //list1.OrderBy(i = i.Id); ??????????? timer.Stop(); ??????????? Console.Write(Count: + count + , List time:); ??????????? Console.WriteLine(timer.Elapsed.Ticks); ??????????? timer = new Stopwatch(); ??????????? timer.St

文档评论(0)

enxyuio + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档