• C#将List<T>转化为DataTable


    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Reflection;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        static class ConvertDatatable
        {
            /// <summary>
            /// 扩展方法:将List<T>转化为DataTable
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="list"></param>
            /// <returns></returns>
            public static DataTable ToDataTable<T>(this List<T> list)
            {
                DataTable datatable = new DataTable();
                PropertyInfo[] propInfo = typeof(T).GetProperties(BindingFlags.Public|BindingFlags.Instance);
                foreach (var item in propInfo)
                {
                    datatable.Columns.Add(item.Name);
                }
                foreach (T item in list)
                {
                    var values=new object[propInfo.Length];
                    for (int i = 0; i < propInfo.Length; i++)
                    {
                        values[i] = propInfo[i].GetValue(item, null);
                    }
                    datatable.Rows.Add(values);
                }
                return datatable;
            }
        }
    
        class Student
        {
            public int? id { get; set; }
            public string name { get; set; }
            public int? age { get; set; }
            public string address { get; set; }
        }
    }

    调用:

        class Program
        {
            static void Main(string[] args)
            {
                List<Student> listStu = new List<Student>()
                {
                    new Student(){id=1,name="张三",age=2,address="东十路1号"},
                    new Student(){id=2,name="李四",age=8}
                };
    
                DataTable dt = listStu.ToDataTable<Student>();
    
                foreach (DataRow item in dt.Rows)
                {
                    Console.Write(item["id"].ToString());
                    Console.Write(item["name"].ToString());
                    Console.Write(item["age"].ToString());
                    Console.Write(item["address"].ToString());
                    Console.WriteLine("
    ");
                }
                Console.Read();
            }
        }
  • 相关阅读:
    lodash工具库(js)
    高频前端面试题汇总js篇【上】
    传说中的前端100问
    React Hooks启航篇
    你会用es6,倒是用啊
    封装点击下载功能
    Day.js极简的处理日期的js库
    crossstorage浏览器web跨域本地缓存
    kafka分区的分配以及再平衡
    kafka高效读写数据
  • 原文地址:https://www.cnblogs.com/AlexOneBlogs/p/8044494.html
Copyright © 2020-2023  润新知