300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > [工具类]泛型集合转换为DataTable

[工具类]泛型集合转换为DataTable

时间:2024-06-03 18:08:03

相关推荐

[工具类]泛型集合转换为DataTable

写在前面

在实际项目中,用到了将集合转换为DataTable,就试着封装了一个方法,记录一下。

代码

using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace Wolfy.List2DataTable{class Program{static void Main(string[] args){List<Person> lst = new List<Person>() { new Person(){ ID=1, Gender=false, Name="wolfy1"},new Person(){ ID=2, Gender=false, Name="wolfy2"},new Person(){ ID=3, Gender=false, Name="wolfy3"},new Person(){ ID=4, Gender=false, Name="wolfy4"},new Person(){ ID=5, Gender=false, Name="wolfy5"},};DataTable dt = List2DataTable<Person>(lst);Console.WriteLine("转换结束");Console.Read();}/// <summary>/// 将泛型集合转换为datatable/// </summary>/// <typeparam name="TEntity"></typeparam>/// <param name="entities"></param>/// <returns></returns>static DataTable List2DataTable<TEntity>(List<TEntity> entities){if (entities == null){throw new ArgumentNullException("转换的集合为空");}Type type = typeof(TEntity);PropertyInfo[] properties = type.GetProperties();DataTable dt = new DataTable(type.Name);foreach (var item in properties){dt.Columns.Add(new DataColumn(item.Name) { DataType = item.PropertyType });}foreach (var item in entities){DataRow row = dt.NewRow();foreach (var property in properties){row[property.Name] = property.GetValue(item);}dt.Rows.Add(row);}return dt;}}public class Person{public int ID { set; get; }public string Name { set; get; }public bool Gender { set; get; }}}

测试结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。