虽然只是一个小问题, 但是在学习.NET的路上, 一定会遇到. 回想当时, 我在永X余集团驻点 Jerry对我提出了疑问 “List<T> 和IQueryable<T>关键性的不同在哪?” 我呆了一下 回忆起制作台湾外X部的网站的时候 =======3个月前========= 原本好好的New List 全部挂掉了 在Code完全没动的情况下... 仔细追查以后 发现是资料库汇入正式资料 捞1万笔资料捞不出来 因为超过List<T>的限制 一番尝试后, 改成了IQueryable<T>后就可行了 改完之后, 我向前辈询问 ‘原来IQueryable<T>能存在记忆体的资料比List<T>还多,是不是这样?’ 前辈高深莫测的回答“是的” ========回到现在======== ‘IQueryable<T>比较吃效能,他能存的资源比较多。’ 我学着前辈,装做高深莫测。 但是他们关键性的不同在哪?? 招唤Google大神, 得到了相关资料 http://www.chinaitlab.org/space-144-do-blog-id-15258.html 发现原来, 真的不一样 IQueryable<T>是在foreach的时候,才向资料库发送查询 假设我在View抓资料的当下, 他才向资料库发送请求 好处 不占记忆体 坏处 向资料库多发一次请求 List<T>则是立即发送请求把资料存入记忆体 当我在Controller使用时它就把资料存起来了 好处 List为null的情况 当某些情况下, 有两个资料库, 一次只能抓一个的时候 会先把资料存入List<T>, 然后再抓第二次进行比对 List<T>最好是在查询语法下完之后在使用, 而资料笔数在百笔~千笔之内是较为理想的 方可使用最少的资源.