博客
关于我
List<T> to DataTable
阅读量:791 次
发布时间:2023-02-05

本文共 1767 字,大约阅读时间需要 5 分钟。

集合转换为DataTable的C#方法

在C#编程中,常需要将各种数据集合转换为DataTable以便于操作和展示。本文将介绍如何将集合转换为DataTable的高效方法。

方法概述

以下是一个将集合转换为DataTable的实用方法:

public static DataTable ToDataTable(IList list){    DataTable dataTable = new DataTable();    if (list.Count > 0)    {        // 获取列表中第一项的属性信息        PropertyInfo[] properties = list[0].GetType().GetProperties();                // 添加表格中的列        foreach (PropertyInfo property in properties)        {            dataTable.Columns.Add(property.Name, property.PropertyType);        }                // 将集合中的每一项添加到表格中        for (int i = 0; i < list.Count; i++)        {            // 创建临时存储列表            ArrayList tempList = new ArrayList();                        // 获取当前项目的所有属性值            foreach (PropertyInfo property in properties)            {                object value = property.GetValue(list[i], null);                tempList.Add(value);            }                        // 将临时列表转换为数组并加载到表格中            object[] array = tempList.ToArray();            dataTable.LoadDataRow(array, true);        }    }    return dataTable;}

方法详解

  • 创建DataTable实例:首先,我们创建一个新的DataTable对象。

  • 检查集合是否为空:如果集合为空,直接返回空DataTable。

  • 获取属性信息:通过获取集合中第一项的类型信息,获取其属性,并为DataTable添加相应的列。

  • 处理每一项:遍历集合中的每一项,获取其属性值,并将这些值添加到临时列表中。

  • 加载数据行:将临时列表转换为数组后,加载到DataTable中。

  • 示例应用

    以下是一个使用该方法的示例:

    // 使用示例List
    list = new List
    { new MyObject { Name = "张三", Age = 30 }, new MyObject { Name = "李四", Age = 25 }};DataTable dataTable = ToDataTable(list);// 查看结果foreach (DataRow row in dataTable.Rows){ Console.WriteLine("Name: {0}, Age: {1}", row["Name"], row["Age"]);}

    注意事项

    • 在某些情况下,GetValue方法可能需要相应的参数配置或是处理非公有的属性,具体取决于实际使用场景。
    • 如果集合中包含多种类型的对象,确保所有属性类型都已正确添加到DataTable中。
    • 如果集合为空或有重复项,方法会自动处理。

    总结

    通过以上方法,您可以轻松地将各种集合类型转换为DataTable,并灵活地进行数据处理和展示。这一方法在日常开发中非常实用,能够有效提升数据处理效率。

    转载地址:http://vzufk.baihongyu.com/

    你可能感兴趣的文章
    Linux(centos7)上安装最新版R3.4.1
    查看>>
    Linux(CentOS)安装 Nginx
    查看>>
    Linux(RadHat)基础学习—软件安装
    查看>>
    linux(ubuntu)中crontab定时器命令详解 以及windows中定时器
    查看>>
    linux(乌班图)修改apt下载源
    查看>>
    Linux,启动java程序的通用脚本sh
    查看>>
    Linux:-bash: pip: command not found pip
    查看>>
    Linux:/dev/tty、/dev/tty0 和 /dev/console 之间的区别
    查看>>
    Linux:bash: git: 未找到命令...
    查看>>
    Linux:CentOS安装Docker Compose
    查看>>
    Linux:CentOS安装Git
    查看>>
    Linux:error: libuv required but not found. Try installing ‘libuv1-dev‘ or ‘libuv-devel‘
    查看>>
    Linux:fpm打包工具
    查看>>
    Linux:ldd命令详解
    查看>>
    Linux:Mysql 大小写配置
    查看>>
    Linux:mysql中文乱码解决方案
    查看>>
    Linux:Prometheus安装
    查看>>
    Linux:Redis开机启动
    查看>>
    Linux:RPM命令
    查看>>
    Linux:Ubuntu防火墙
    查看>>