zoukankan      html  css  js  c++  java
  • List<T>转换Datable 数据

     1、 .net C# List转换成为DataTable

     

    设计了三类特性ColumnType(列类型映射),DataField(列名称映射),NoColumn(没有对应的列,忽略该属性)

    都是使用IList<T>扩展方法调用。

    很多场景下,我们需要将List转换成为DataTable,那么我们应该怎么处理呢?
       /// <summary>
            /// 将List转换为DataTable
            /// </summary>
            /// <param name="list">请求数据</param>
            /// <returns></returns>
            public static DataTable ListToDataTable<T>(List<T> list)
            {
                //创建一个名为"tableName"的空表
                DataTable dt = new DataTable("tableName");
    
                //创建传入对象名称的列
                foreach (var item in list.FirstOrDefault().GetType().GetProperties())
                {
                    dt.Columns.Add(item.Name);
                }
                //循环存储
                foreach (var item in list)
                {
                    //新加行
                    DataRow value = dt.NewRow();
                    //根据DataTable中的值,进行对应的赋值
                    foreach (DataColumn dtColumn in dt.Columns)
                    {
                        int i = dt.Columns.IndexOf(dtColumn);
                        //基元元素,直接复制,对象类型等,进行序列化
                        if (value.GetType().IsPrimitive)
                        {
                            value[i] = item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item);
                        }
                        else
                        {
                            value[i] = JsonConvert.SerializeObject(item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item));
                        }
                    }
                    dt.Rows.Add(value);
                }
                return dt;
            }

    2、   C# DataTable 和List之间相互转换的方法

  • 相关阅读:
    无法与服务器建立安全链接
    OpenGL基础探究
    百度语音识别接入遇到的问题
    语音音频相关
    Gif动态图UIImage
    替换图像的某种色值
    错误
    各种须知分类等
    动画支持的一些keypath
    X pgAdmin4 重置布局 页面关不掉,要疯掉了
  • 原文地址:https://www.cnblogs.com/jiazuzhuzhu/p/8548030.html
Copyright © 2011-2022 走看看