首页 > 代码库 > 泛型List集合转化为DateTable的扩展方法
泛型List集合转化为DateTable的扩展方法
文章出处:http://www.codeproject.com/Tips/867866/Extension-Method-for-Generic-List-Collection-to-Da
这段代码是能够帮助你把泛型集合List转出成DataTable的扩展方法。
背景:
不知道你是否知道这个扩展方法,但是你可以不做任何修改的去使用下面这个类的代码。
使用代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;namespace coDEalers{ public static class Extension { public static DataTable ListToDataTable<T>(this IList<T> data, string tableName) { DataTable table = new DataTable(tableName); //special handling for value types and string if (typeof(T).IsValueType || typeof(T).Equals(typeof(string))) { DataColumn dc = new DataColumn("Value"); table.Columns.Add(dc); foreach (T item in data) { DataRow dr = table.NewRow(); dr[0] = item; table.Rows.Add(dr); } } else { PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T)); foreach (PropertyDescriptor prop in properties) { table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType); } foreach (T item in data) { DataRow row = table.NewRow(); foreach (PropertyDescriptor prop in properties) { try { row[prop.Name] = prop.GetValue(item) ?? DBNull.Value; } catch (Exception ex) { row[prop.Name] = DBNull.Value; } } table.Rows.Add(row); } } return table; } }}
优点(兴趣点):
这是一个把GenericList集合转化成DataTable的一个简单的方法。
用法:
DataTable dt = null;List<StateList> stateListObj = JsonConvert.DeserializeObject<List<StateList>>(hdn_stateDetails_JSON.Value);dt = stateListObj.ListToDataTable<StateList>("dtState");
泛型List集合转化为DateTable的扩展方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。