将DataTable转换为List的好处与实现方法

本文探讨了DataTable逐渐被List<T>取代的原因,包括List<T>的强类型化带来的编译时安全性、Linq的支持以及内存效率优势。同时,也提及了将DataTable转换为List<T>的操作可能性。
摘要由CSDN通过智能技术生成

现在的DataTable慢慢退出历史舞台,主要是有以下几个原因:


1.List<t>是强类型化的,而DataTable不是一般的DataTable,
访问某列时,是通过string的ColumnName来取得的,
比如:string name = dt.Rows[i][&quot;Name&quot;].ToString();
因为是string的列名,存在记错写错的风险,且编译不检查而List<t>,
因为类型化的元素,编程时属性可以有IDE的智能感知来选择,编码更方便。
不容易出错:string name = list[0].Name;


2.Linq的强有力支持,使得操作List<t>有前所未有的快感其实在linq出来之前,
还是DataTable用的多,因为要想过滤数据,可以用DataView,DataTable.Select()等方法。
而List<t>只能是自己写循环,麻烦。Linq出来之后,where,join,group by,order by...等等操作,
对于List<t>的查询真是很便利。


3.DataTable的结构远比List<t>要复杂,内存占用量更大。在有变化的场合下,
DataTable里要维护不同RowState的数据(修改前的和现在的),还有Schema数据List<t>就没有这些累赘,更轻快。所以,Linq+List<t>才使得现在大家越来越倾向使用List<t>而不是DataTable

                         

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值