IList、ICollection、IEnumerable 之辨析 收藏


祖宗:IEnumerable

此接口只有一个方法 GetEnumerator();

是FrameWork为了实现迭代器模式设计的接口。所有继承了IEnumerable的类,要使用foreach迭代器时,就需要使用该方法。因此也只有实现了该接口的类才可以使用foreach。


ICollection继承自IEnumerable,IList继承自ICollection

这两个接口都是为了给集合提供一些公用的方法。只是分了两个层次,IList比ICollection多几个方法,增加,移除成员。可以简单理解为:ICollection主要针对静态集合;IList主要针对动态集合。

IList,ICollection,IEnumerable 在命名空间System.Collections中。

IList<T>,ICollection<T>,IEnumerable<T> 在System.Collections.Generic 命名空间中。

IList<T>,ICollection<T>,IEnumerable<T> 是2.0引入泛型以后新增的。主要是提高重用性与类型安全。

IEnumerable<T>继承自IEnumerable

ICollection<T>继承自IEnumerable<T>

IList<T>继承自ICollection<T>

因此可以完全使用泛型接口,而放弃使用ICollection和IList。泛型接口提供了更好的类型安全和编译时的检验。

补充:

IEnumerable<T>和IEnumerable都只有一个方法。ICollection<T>和ICollection的结构是不一样的。ICollection<T>比ICollection多几个方法。它包含了几个IList中的几个方法。也许是对以前的改进。

 


《转自》Valsun's Blog

http://blog.sina.com.cn/s/blog_586b6c05010096tl.html

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shaoyupeng/archive/2008/12/22/3581205.aspx

转载于:https://www.cnblogs.com/zhangbinghe/archive/2009/07/29/1534336.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值