IEnumerable、IEnumerator、ICollection、IList、IQeurable详解

都是I开发,所以都是接口。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网络空间、营销软件、网站建设、榕江网站维护、网站推广。

   IEnumerator:集合访问器,基础的;没有它,就不能使用forearch遍历集合或数组,任何支持GetEnumerator()方法的类型都可以通过foreach结构进行运算。也可用 lamda 表达式查询。

   IEnumerable:只包含一个抽象方法GetEnumerator(),返回一个可循环访问集合的IEnumerator对象。

  IEnumerable 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了

     IList(IList)会立即在内存里创建持久数据,这就没有实现“延期执行(deferred execution)”,如果被加载的实体有关联实体(associations),此关联实体不会被加载(既不立即加载,也不延迟加载)。

   IQueryable 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤.

    IQeurable(IQuerable)不会立即在内存里创建持久数据,只有遍历它(如通过foreach)、把它转换成List等情况下才会向内存加载数据,它可以实现“延期执行”,如果当前被加载的实体有关联实体(associations),此关联实体可被接下来的访问加载。

  IList与List 通俗一点讲,只能存放同一类型的元素,强类型,不需转换。

  ArrayList:数组可存放不同的类型。元素都转Object,所以需要强制转换一下。


文章名称:IEnumerable、IEnumerator、ICollection、IList、IQeurable详解
当前网址:http://ybzwz.com/article/gisddd.html