扩展方法 DataTable的ToList<T>

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展方法 DataTable的ToList<T>相关的知识,希望对你有一定的参考价值。

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

namespace Extension
{

    public static class Extension
    {
        public static IList<T> ToList<T>(this DataTable dt)
        {
            var lst = new List<T>();
            var plist = new List<System.Reflection.PropertyInfo>(typeof(T).GetProperties());
            foreach (DataRow item in dt.Rows)
            {
                T t = System.Activator.CreateInstance<T>();
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    PropertyInfo info = plist.Find(p => p.Name == dt.Columns[i].ColumnName);
                    if (info != null)
                    {
                        if (!Convert.IsDBNull(item[i]))
                        {
                            info.SetValue(t, item[i], null);
                        }
                    }
                }
lst.Add(t); } return lst; ///throw new NotImplementedException(); } } }

  

DataTable dt = DAL.DAL.gettable();

var u = dt.ToList<user>();

 http://www.cnblogs.com/jasonxuvip/archive/2012/08/03/2621674.html

以上是关于扩展方法 DataTable的ToList<T>的主要内容,如果未能解决你的问题,请参考以下文章

集合扩展方法委托的运算事件

如何提取DataTable中的某一列字段的所有数据,进行运算

linq查询DataTable中的某列去重数据

DataTable 和List 相互转换

DataTable 基本转换简单实例

扩展方法,