【原】超简单类型转换(DataTable --> List/JSON)的实现
2012-11-11 00:51
423 查看
背景:
开发工作中经常需要类型的转换,比如DataTable转换为List、或是DataTable转换为JSON等等,
每次都重复的写相同的代码,比如:把实体类的字段属性一个一个的列出来,从DataTabel中把值取出来赋上,
真的好麻烦 (*=*)
思考:
1)DataTable转换为List,主要是使用反射,遍历实体类的属性,和DataTabel中的列进行对比并赋值
2)DataTable转换为JSON,主要是拼接JSON串
实践:
参考了网上很多前辈的思路和实现,制作了一个ConvertHelper类,感谢各位前辈 ^_^
调用转换处理
两句代码完成
可以看到转换后的效果
前几条数据是DataTable转换为List的效果,后一条数据是DataTable转换为JSON的效果
再贴一张类型转换时间的测试结果吧,50w条记录转换10秒左右
是不是很简单呢?
如果您有好的实现或是意见,别忘了告诉我哦 ^_^
开发工作中经常需要类型的转换,比如DataTable转换为List、或是DataTable转换为JSON等等,
每次都重复的写相同的代码,比如:把实体类的字段属性一个一个的列出来,从DataTabel中把值取出来赋上,
真的好麻烦 (*=*)
思考:
1)DataTable转换为List,主要是使用反射,遍历实体类的属性,和DataTabel中的列进行对比并赋值
2)DataTable转换为JSON,主要是拼接JSON串
实践:
参考了网上很多前辈的思路和实现,制作了一个ConvertHelper类,感谢各位前辈 ^_^
调用转换处理
/// <summary> /// DataTable-->List测试 /// </summary> private static void MockDataTableConvertToList() { // 定义时间起点 TimeSpan tsStart = new TimeSpan(DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Millisecond); // 変換処理 IList<UserInfo> users = ConvertHelper<UserInfo>.DataTableConvertToList(MockData()); // 定义时间终点 TimeSpan tsEnd = new TimeSpan(DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Millisecond); // 计算耗时 TimeSpan ts = tsStart.Subtract(tsEnd).Duration(); Console.WriteLine(string.Format("DataTable-->List 変換耗時:{0}", ts.ToString())); //foreach (var user in users) //{ // Console.WriteLine("{0} : {1} - {2};", user.UserID, user.UserName, user.Salary); //} } /// <summary> /// DataTable-->Json测试 /// </summary> private static void MockDataTableConvertToJson() { // 定义时间起点 TimeSpan tsStart = new TimeSpan(DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Millisecond); // 変換処理 string jsonString = ConvertHelper<UserInfo>.DataTableConvertToJson(MockData()); // 定义时间终点 TimeSpan tsEnd = new TimeSpan(DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, DateTime.Now.Millisecond); // 计算耗时 TimeSpan ts = tsStart.Subtract(tsEnd).Duration(); Console.WriteLine(string.Format("DataTable-->Json 変換耗時:{0}", ts.ToString())); //Console.WriteLine(jsonString); }
两句代码完成
IList<UserInfo> users = ConvertHelper<UserInfo>.DataTableConvertToList(MockData()); string jsonString = ConvertHelper<UserInfo>.DataTableConvertToJson(MockData());
可以看到转换后的效果
前几条数据是DataTable转换为List的效果,后一条数据是DataTable转换为JSON的效果
再贴一张类型转换时间的测试结果吧,50w条记录转换10秒左右
是不是很简单呢?
如果您有好的实现或是意见,别忘了告诉我哦 ^_^
相关文章推荐
- c# Json List<T> DataTable 数据相互转换
- 将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据
- 利用反射实现DataTable 与 List<T> 转换
- 将泛型集合类(List<T>)转换成DataTable,返回的DataTable所有列的数据类型为string型,且列顺序与字符串提供的字段顺序一致
- c# Json List<T> DataTable 数据相互转换
- C#反射实现将DataTable转换为List<T>
- Json List<T> DataTable 数据相互转换
- JQuery将DataTable list<>数据转换成JSON数据 动态创建表格显示数据
- .Net:反序列化处理Json字符串.转换成List<T>类型
- C#实现DataTable,List和Json转换的方法
- C#实现DataTable,List和Json转换的方法
- c# Json List<T> DataTable 数据相互转换
- 将DataTable或Ilist<>转换成JSON格式
- c# Json List<T> DataTable 数据相互转换
- 将DataTable或Ilist<>转换成JSON格式
- 如何将一个List<Map<String,String>>类型的集合数据转换成json格式输出
- c# Json List<T> DataTable 数据相互转换
- datatable转换成list<T>,datatable转换成json格式
- c# Json List<T> DataTable 数据相互转换