Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# datatable 转化 list

作者:堕魂灭天   发布日期:2026-04-26   浏览:101

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

public class DataTableToListExample
{
    public static List<T> ConvertDataTableToList<T>(DataTable dt) where T : new()
    {
        List<T> data = new List<T>();

        foreach (DataRow row in dt.Rows)
        {
            T item = new T();
            foreach (PropertyInfo prop in item.GetType().GetProperties())
            {
                if (dt.Columns.Contains(prop.Name))
                {
                    prop.SetValue(item, row[prop.Name], null);
                }
            }
            data.Add(item);
        }
        return data;
    }
}

解释说明:

  1. 泛型方法 ConvertDataTableToList<T>:此方法接受一个 DataTable 作为参数,并返回一个 List<T>,其中 T 是你需要转换的目标类型。
  2. 泛型约束 where T : new():确保目标类型 T 必须有一个无参构造函数,以便在代码中通过 new T() 创建实例。
  3. 遍历 DataTable 的每一行:使用 foreach (DataRow row in dt.Rows) 来遍历 DataTable 中的每一行。
  4. 创建目标类型的实例:对于每一行,创建一个新的 T 类型的实例。
  5. 设置属性值:通过反射获取目标类型的属性,并检查 DataTable 是否包含对应的列名。如果包含,则将该列的值赋给属性。
  6. 添加到列表:将处理后的对象添加到结果列表中。

这个方法可以将任何 DataTable 转换为指定类型的列表,前提是目标类型的属性名与 DataTable 的列名相匹配。

上一篇:c# web开发

下一篇:c# datatable linq 查询

大家都在看

c# 二进制

c# 创建目录

c# socket服务端连接多个客户端

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

c# invoke方法

.net和c#

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站