zoukankan      html  css  js  c++  java
  • 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();
            }
        }
  • 相关阅读:
    一篇不错的关于分析MVC的文章
    linux 下通过过 hbase 的Java api 操作hbase
    Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)
    软件磁盘阵列 (Software RAID)
    查看端口的进程
    java的锁机制
    linux,强大的history命令
    mysql那些招
    mysql索引使用注意事项
    Linux下调节CPU使用的几种方法
  • 原文地址:https://www.cnblogs.com/AlexOneBlogs/p/8044494.html
Copyright © 2011-2022 走看看