园里对这两个已经有很多文章作了深入的介绍,我总结些,当成笔记用. 一.具体判断用哪个上,如果是运行在本地内存中的,用IEnumerable,枚举该对象时,会立即反应查询结果. 如果是远程数据源,比如数据库,为优化查询,减少中间环节,要把多条语句先存放到表达式数里,等执行ToList方法时才会去真正调用迭代器GetEnumerator()取值,会去执行IQueryProvider中的Excute方法.得到最终结果,就是延时加载. 二.个人认为在不确认哪个更适用的情况下用IQueryable,因为从…