`
pcajax
  • 浏览: 2200923 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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;
        }
    }
}
 

 

总结一下:

其实我想重写下Ado.net ,因为之前我们公司用的都是直接dataset to datatable ,现在发现 to list更方便(不知道大家有没有这种感觉),

我自己用的是Nhibernate,所以基于公司内部的话,我想再写个Ado.net 转换数据的dll,最后我想说的是,大家在公司里都是用什么开发的?

ado.net?nhibernate?Elinq?entityframework?希望大家一起讨论讨论!

分享到:
评论

相关推荐

    DataTable转List

    c#DataTable转List实现自动转换。

    DataTable 和List 相互转换

    #### `DataTable`转`List&lt;T&gt;` 在.NET框架中,将`DataTable`转换为`List&lt;T&gt;`通常涉及遍历`DataTable`的每一行,然后创建`T`类型的实例,并将每一列的值映射到相应的属性上。这个过程可以通过反射来实现,但效率较低...

    C#的DataTable转实体类,包含DataTable转List,DataRow转Entity,支持DataTable根据实体类字段的DisplayName标记映射转换

    List&lt;T&gt; DataTableToList(DataTable _tab) where T : new() List&lt;T&gt; DataTableToListByDisplayName(DataTable _tab) where T : new() List&lt;Parent&gt; DataTableToList, Child&gt;(DataTable _tab) List&lt;Parent&gt; ...

    c#的datatable转list示例

    在C#编程中,经常需要在不同的数据结构之间进行转换,例如从数据库操作中获取的`DataTable`转换为更方便操作的`List&lt;T&gt;`对象。`DataTable`是.NET框架中用于存储和操作数据的表格型数据结构,而`List&lt;T&gt;`则是一个动态...

    【ASP.NET编程知识】C#将DataTable转化为ListT.docx

    C#将DataTable转化为List 这篇文章主要讲述了如何将DataTable对象转换为List对象,使用反射机制来实现这个功能。下面是详细的知识点: 1. 使用反射机制来获取T对象的所有属性 在将DataTable对象转换为List对象时...

    list转换为dataTable

    在本篇文章中,我们将深入探讨如何将一个列表(List)转换为数据表(DataTable)。这一操作在.NET框架下的数据处理中十分常见,特别是在需要将内存中的数据结构转换为可以进行进一步处理或展示的数据表格式时。 ###...

    JsonHelper list datatable to json

    JsonHelper list datatable to json

    .net 中datatable与list泛型实体对象的互相转换

    非常方便的datatable类型与List泛型实体对象集合的互相转换,在面向对象的开发中,经常会用到的,如使用上不懂可以咨询我

    List(Of T)转换成DataTable.VB

    List(Of T)转换成DataTable

    .net 将datatable转换为实体类LIST

    将datatable转换为实体类LIST,运用了反射和泛型的技术

    C#将DataTable转化为List&lt;T&gt;

    在C#开发中,将DataTable转换为List泛型集合是一个常见的需求,特别是在使用三层架构进行网站开发时,我们可能会从数据访问层获取一个DataTable对象,然后需要将其转换为一个强类型的List集合以便在业务逻辑层或表示...

    C# DataTable 转换为 实体类对象实例

    代码如下:public class User { public int ID { get;...下面是我写的一个通用方法,分享+记录,便于日后直接Copy ~ 代码如下:private static List&lt;T&gt; TableToEntity(DataTable dt) where T : class

    C#将DataTable转换成list的方法

    本文实例讲述了C#将DataTable转换成list及数据分页的方法。分享给大家供大家参考。具体如下: 代码如下:///    /// 酒店评论列表-分页  ///   /// ”userId”&gt;  /// ”pageIndex”&gt;当前页  /// ”pageCount”...

    List转DataTable并导出为Excel

    在.NET开发环境中,经常需要处理各种数据集合,例如List对象,然后将其转化为表格格式,比如DataTable,以便于进一步的数据操作,比如...以上就是关于"List转DataTable并导出为Excel"的相关知识点,希望对你有所帮助。

    C#实现DataTable,List和Json转换的方法

    本文将详细讨论如何使用C#将DataTable、List以及相关的数据结构转换为JSON格式,以便在网络传输或者存储中使用。 首先,让我们看如何将一个DataTable转换为JSON。在.NET框架中,虽然没有内置的直接方法来实现这个...

    datatable和list互转

    通用datatable和list互转代码

    C#中将DataTable转化成ListT的方法解析

    通常在DAL层我们都需要把DataTable转换为List让调用者尽可能的好用,尽量的不用关心数据库的字段等,所以我们一般传过去的都是List而不是DataTable。 泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力...

    DataSet、List、Datatable转换为Json

    List转换成Json 对象转换为Json DataSet转换为Json DataTable转换为Json DataReader转换为Json

Global site tag (gtag.js) - Google Analytics