虽然很多OOP程序员喜欢使用List来代替DataTable,但是不得不承认DataTable在速度上有着先天的优势,因为从数据库拿出来就是DataTable,List是通过其他办法转出来的。而且DataTable就是行列结构,查询数据是红黑树直接命中的,List则是暴力搜索,当然数据量在几千、几万时,这种差别不明显。
还有就是DataTable不需要定义Model,这个也是一大笔时间开销。
并且DataTable的Select里面的语句,是和SQL的where后面的语句高度一致的,熟悉SQL,又讲求开发时间的地方,DataTable还是不二的选择,至少是我的挚爱。
当然List也有一些优势,比如存储IoT连接、实例等,当然还有使用LINQ。
DataTable table = new DataTable();
private void Update()
{
//select里面的写法仿照sql where里面的格式。
DataRow dataRow = table.Select("Name like '张%'")[0];
dataRow["Age"] = 20;
}
private void Delete()
{
DataRow dataRow = table.Select("Name like '张%'")[0];
table.Rows.Remove(dataRow);
}
private void Init()
{
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Age", typeof(int));
DataRow dataRow = table.NewRow();
dataRow["Name"] = "张三";
dataRow["Age"] = 18;
table.Rows.Add(dataRow);
dataRow = table.NewRow();
dataRow["Name"] = "李四";
dataRow["Age"] = 28;
table.Rows.Add(dataRow);
dataRow = table.NewRow();
dataRow["Name"] = "王麻子";
dataRow["Age"] = 38;
table.Rows.Add(dataRow);
}