有的说datatable占内存大,速度慢,但如果是list的话,得到datatable后还得循环给list,赋值,

  不知道哪一种好一点,
选用其中一种,好处体现在哪里呢?希望可能找到正确的答案


我放到首页顺大家都讨论下,我问了好多人,但没有人确认自己的答案是否准备,
感觉有list的多,
好想知道真正的原因呀

附:一些高手的观点

返回类型是直接返回datatable好呢还是返回ILIST<表名>好?
  如果返回list的话,得么dataset还得再操作一次,这不是走弯路了吗? //因为 List 是泛型, 比 dataTable 不占内存
  //因为 List 是泛型, 比 dataTable 不占内存
  如果把数据表映射成对象,也就意味着每次查询都有可能需要拿到所有列的数据,而往往程序可能使用的就是其中2个字段而已。 .
  datatable是微软推出的ado.net的一部分,无论是它本身对于数据库的关系的支持还是它对于界面上控件绑定的支持,都已经做了优化处理。
  ,如果你的程序使用缓存,对数据要进行平凡的过滤排序计算等等使用DataTable是个不错的选择,但是如果你只是要显示一些变化不大的东西稳定的数据那么List要好一些,之所以感觉DataTable慢通常有一下几个原因:
1 DataTable是大对象,并且还要保存行的版本
2 在C/S的模型种由于DataTable传送时必须整体传送,而List则可以按其元素增量传送(在WCF里面)
3 DataTable默认序列化为XmL形式,占用的空间大,导致传送慢

当然DataTable也有其优势,比如由于存储了行状态,你可以只传送改变的部分,你可以UnDo的你操作等等

2.3 至于楼主的list和datatable哪个好,如果数据小也体现不了的,如果你用Ado.net还非要去一个一个填充List的话,那肯定不值得.这东西都是根据实际情况来的,真的关注性能方面还不如好好想想数据库
 datatable确实占些内存.但我个人认为,还是比list好吧. 

1.我使用IList<class>较多。具体原因不是不解释,是不知道原因。

2.petshop 用IList<class>

用datatable从服务器返回到客户端,传输数据较大,

用IList<class> 返回的数据要小,

相对于传输的问题,我认为循环赋值的那点计算应该不算什么~~