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

在不知道列名和列数的情况下,可以使用 DataTableColumns 属性获取所有的列信息,然后使用反射获取属性,并为每一行创建一个新的对象,将其添加到 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 的列名称匹配。如果列名称和属性名称不匹配,你需要在代码中进行相应的更改。

相关内容

热门资讯

黑科技辅助!微扑克系统发牌规律... 黑科技辅助!微扑克系统发牌规律,(微扑克智能ai)原来真的有挂,我来教教你(教学)-哔哩哔哩;小薇(...
黑科技辅助!wepoke辅助有... 您好,WePoKe积分这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在...
黑科技辅助!wpkai机器人的... 您好:WPK真实这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好...
黑科技辅助!aapoker透视... 黑科技辅助!aapoker透视辅助,(AAPoKer智能ai)原来真的有挂,透牌教程(详细教程)-哔...
黑科技辅助!wepoke有挂蓝... 黑科技辅助!wepoke有挂蓝鸟,(WePoKe真的)原来真的有挂,插件教程(讲解有挂)-哔哩哔哩;...
黑科技辅助!wpkai辅助,(... 黑科技辅助!wpkai辅助,(WPK稳定)原来真的有挂,存在挂教程(教学)-哔哩哔哩;WPK稳定是一...
黑科技辅助!wepoke智能a... 《黑科技辅助!wepoke智能ai,(WePoKe挂是真的)原来真的有挂,细节方法(今日头条)-哔哩...
黑科技辅助!微扑克ai辅助工具... 黑科技辅助!微扑克ai辅助工具,(微扑克透明挂)原来真的有挂,曝光教程(教学)-哔哩哔哩;1、黑科技...
黑科技辅助!红龙扑克是有问题,... 您好:红龙扑克教程这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
黑科技辅助!wepoke辅助,... 黑科技辅助!wepoke辅助,(Wepoke网页版)原来真的有挂,分享教程(有挂教程)-哔哩哔哩;1...