首页 > 代码库 > 一些DataTable和IList间转换的封装
一些DataTable和IList间转换的封装
using System;using System.Collections.Generic;using System.Text;using System.Data;using System.ComponentModel;using System.Reflection;public class CollectionHelper { private CollectionHelper() { } public static List<T> Distinct<T>(IList<T> list) { List<T> list1 = new List<T>(); foreach (T obj in list) { if (!list1.Contains(obj)) list1.Add(obj); } return list1; } public static DataTable ConvertTo<T>(IList<T> list) { DataTable table = CreateTable<T>(); Type entityType = typeof(T); PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entityType); foreach (T item in list) { DataRow row = table.NewRow(); foreach (PropertyDescriptor prop in properties) { object val = prop.GetValue(item); if (val != null) row[prop.Name] = val; } table.Rows.Add(row); } return table; } public static IList<T> ConvertTo<T>(IList<DataRow> rows) { IList<T> list = null; if (rows != null) { list = new List<T>(); foreach (DataRow row in rows) { T item = CreateItem<T>(row); list.Add(item); } } return list; } public static IList<T> ConvertTo<T>(DataTable table) { if (table == null) { return null; } List<DataRow> rows = new List<DataRow>(); foreach (DataRow row in table.Rows) { rows.Add(row); } return ConvertTo<T>(rows); } public static T CreateItem<T>(DataRow row) { T obj = default(T); if (row != null) { obj = Activator.CreateInstance<T>(); foreach (DataColumn column in row.Table.Columns) { PropertyInfo prop = obj.GetType().GetProperty(column.ColumnName); try { object value = http://www.mamicode.com/row[column.ColumnName];>
一些DataTable和IList间转换的封装
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。