不知道列名和列数的情况下,将 DataTable.Rows 转换为 List<my_class>
创始人
2025-01-12 02:30:09
0次

在不知道列名和列数的情况下,可以使用 DataTable 的 Columns 属性获取所有的列信息,然后使用反射获取属性,并为每一行创建一个新的对象,将其添加到 List 中。

以下是一个示例代码:

public class MyClass
{
    // 定义与 DataTable 的列对应的属性
    public string Column1 { get; set; }
    public int Column2 { get; set; }
    // ...
}

public List ConvertDataTableToList(DataTable dataTable)
{
    List result = new List();

    // 获取 DataTable 的列信息
    DataColumnCollection columns = dataTable.Columns;

    foreach (DataRow row in dataTable.Rows)
    {
        // 创建新的 MyClass 对象
        MyClass myObject = new MyClass();

        // 使用反射设置属性值
        foreach (DataColumn column in columns)
        {
            PropertyInfo property = typeof(MyClass).GetProperty(column.ColumnName);

            if (property != null && row[column] != DBNull.Value)
            {
                property.SetValue(myObject, Convert.ChangeType(row[column], property.PropertyType));
            }
        }

        // 将对象添加到结果列表
        result.Add(myObject);
    }

    return result;
}

使用示例:

// 假设 DataTable 名为 myDataTable
DataTable myDataTable = new DataTable();

// 添加列
myDataTable.Columns.Add("Column1", typeof(string));
myDataTable.Columns.Add("Column2", typeof(int));
// ...

// 添加数据行
myDataTable.Rows.Add("Value1", 1);
myDataTable.Rows.Add("Value2", 2);
// ...

// 转换为 List
List myList = ConvertDataTableToList(myDataTable);

请注意,这个示例假设 MyClass 类的属性与 DataTable 的列名称匹配。如果列名称和属性名称不匹配,你需要在代码中进行相应的更改。

相关内容

热门资讯

热点推荐!辅助器!wepoke... AI 黑科技赛道又上新,这款智能处理工具堪称效率开挂,专门面向短视频创作者打造。它打通脚本撰写、AI...
一起来探讨开挂!破解辅助插件w... 一起来探讨开挂!破解辅助插件wepoker,wepoker开挂脚本插件(本来真的有开挂)AI 智能体...
终于知道辅助挂!wepoker... 您好:wepoker私局辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
总算了解辅助挂!wpk插件辅助... wpk插件辅助AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,断...
一分钟揭秘!辅助!wepoke... AI 黑科技赛道又上新,这款智能处理工具堪称效率开挂,专门面向短视频创作者打造。它打通脚本撰写、AI...
一分钟教会你辅助挂!wpk透视... 一分钟教会你辅助挂!wpk透视辅助方法,德扑之星开挂脚本插件(一直真的是有辅助挂)AI 是一款可以让...
教你攻略透视!WPK私人局,微... 教你攻略透视!WPK私人局,微扑克有没有透视挂神器(固有有透视)主打本地运行的 AI 黑科技工具迎来...
技术分享辅助挂!wpk俱乐部怎... 您好,技术分享辅助挂!wpk俱乐部怎么作弊,德普之星有挂透视吗教程(固有存在有辅助挂)这款游戏可以开...
来一盘透视!wepoker透视... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
一分钟揭秘辅助器!htx矩阵w... AI 黑科技赛道又上新,这款智能处理工具堪称效率开挂,专门面向短视频创作者打造。它打通脚本撰写、AI...