注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

C# IEnumerable<T>、IEnumerator<T>、List<T>、ArrayList、[]数组各各的区别  

2011-10-11 22:39:46|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
List <T>是ArrayList的泛型,ArrayList里边的数据类型是object,List <T>里边的是具体的某种类型,ArrayList类似于向量,可以存储不同的数据类型在一个数组里边(转换为了object)。

一般使用的时候尽量使用List <T>,因为ArrayList存取都要进行一次转换。

[]类型的数组类似于List <T>,不同的是[]是定长的,而List <T>是长度可变的数组
ICollection主要针对静态集合;IList主要针对动态集合
IEnumerable <T>继承自IEnumerable
ICollection <T>继承自IEnumerable <T>
IList <T>继承自ICollection <T>
IEnumerable接口
实现了IEnumerable接口的集合表明该集合能够提供一个enumerator(枚举器)对象,支持当前的遍历集合。IEnumerable接口只有一个成员GetEnumerator()方法。
IList接口和ArrayList类的目的是实现动态数组,ArrayList是IList的一个实现。

IEnumerable表明对象是不确定类型的集合并支持简单迭代,是不是定长根本不关心...

IEnumerable <T>表明对象是指定类型的集合并支持简单迭代,是不是定长根本不关心...

ICollection是IEnumerable接口的派生接口,表明对象是不确定类型的集合并支持简单迭代,而且定义了集合的大小、枚举数和同步方法,这里的大小是指可以是定长的也可以是不定长的...

IList是ICollection和IEnumerable的派生接口,表明对象是不确定类型的集合并支持简单迭代,而且定义了集合的大小、枚举数和同步方法,还可以按照索引单独访问,这里的大小是指可以是定长的也可以是不定长的...

ArrayList类是IList接口的实现,表明对象是不确定类型的大小可按需动态增加的数组...

List <T>类是IList <T>接口的实现,是ArrayList类的泛型等效类并增强了功能,表明对象是可通过索引访问的对象的强类型列表...在.NET 2.0以上可以完全代替ArrayList,就是说ArrayList已经被淘汰...

而动态数组和链表在本质上是不同的...在.NET 2.0以上有双向链表LinkedList <T>泛型类,它也是继承自ICollection <T>,IEnumerable <T>,ICollection,IEnumerable...

能够使用foreach遍历的集合,必须继承IEnumberable(或IEnumerable <T>泛型接口)接口。
IEnumberable接口只有一个方法:
IEnumerator GetEnumberator(){}//返回一个IEnumberator类型的对象,该对象实现System.Collection.IEnumerator接口。
interface IEnumberator
{
object Current{get;}
bool MoveNext();
void Reset();
}
在程序中拼凑sql时,可以这样使用List <T>
List <SqlParameter> list=new List <SqlParameter>();
list.Add(new SqlParameter("参数名","参数值"));
...
SqlParameter[] para=list.ToArray();
...
  评论这张
 
阅读(995)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017