温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

IEnumerable、IEnumerator、ICollection、IList、IQeurable 详解

发布时间:2020-04-06 09:48:23 来源:网络 阅读:283 作者:bingo1945 栏目:编程语言

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

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

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

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

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

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

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

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI