程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#的datatable轉list示例

c#的datatable轉list示例

編輯:C#入門知識

c#的datatable轉list示例。本站提示廣大學習愛好者:(c#的datatable轉list示例)文章只能為提供參考,不一定能成為您想要的結果。以下是c#的datatable轉list示例正文



using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection;

namespace jdrz.HumanIdentify
{
    public class Helper
    {
        /// <summary>
        /// DataTable 轉換為List 聚集
        /// </summary>
        /// <typeparam name="TResult">類型</typeparam>
        /// <param name="dt">DataTable</param>
        /// <returns></returns>
        public static List<TResult> ToList<TResult>(DataTable dt) where TResult : class, new()
        {
            //創立一個屬性的列表
            var prlist = new List<PropertyInfo>();
            //獲得TResult的類型實例  反射的進口
            var t = typeof(TResult);
            //取得TResult 的一切的Public 屬性 並找出TResult屬性和DataTable的列稱號雷同的屬性(PropertyInfo) 並參加到屬性列表
            Array.ForEach(t.GetProperties(), p => { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });
            //創立前往的聚集
            var oblist = new List<TResult>();

            foreach (DataRow row in dt.Rows)
            {
                //創立TResult的實例
                var ob = new TResult();
                //找到對應的數據  並賦值
                prlist.ForEach(p => { if (row[p.Name] != DBNull.Value) p.SetValue(ob, row[p.Name], null); });
                //放入到前往的聚集中.
                oblist.Add(ob);
            }
            return oblist;
        }
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved