方法一:

 public static IList<T> ConvertToModel(DataTable dt)   

         {   
            // 定义集合   
             IList<T> ts = new List<T>();
     
            // 获得此模型的类型  
             Type type = typeof(T);     
            string tempName = "";     
      
            foreach (DataRow dr in dt.Rows)     
             {   
                 T t = new T();    
                // 获得此模型的公共属性     
                 PropertyInfo[] propertys = t.GetType().GetProperties();
                foreach (PropertyInfo pi in propertys)     
                 {     
                     tempName = pi.Name;  // 检查DataTable是否包含此列   
   
                    if (dt.Columns.Contains(tempName))     
                     {     
                        // 判断此属性是否有Setter     
                        if (!pi.CanWrite) continue;        
   
                        object value = dr[tempName];     
                        if (value != DBNull.Value)     
                             pi.SetValue(t, value, null); 
                     }    
                 }     
                 ts.Add(t);     
             }    
            return ts;    
         }    
     }   
方法二:

var query = from t in dt.AsEnumerable().ToList()
group t by new { t1 = t.Field<string>("CustomerID") } into m
select new
{
name = m.Key.t1,
score = m.Sum(n => n.Field<Int32>("aa")),
ss = m.Sum(n => n.Field<Int32>("vv"))
};

list转table:

方法一:

DataTable dt22= ToDataTable(query.Where(p=>1==1));

public static DataTable ToDataTable<T>(IEnumerable<T> collection)
{
var props = typeof(T).GetProperties();
var dt = new DataTable();
dt.Columns.AddRange(props.Select(p => new DataColumn(p.Name, p.PropertyType)).ToArray());
if (collection.Count() > 0)
{
for (int i = 0; i < collection.Count(); i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in props)
{
object obj = pi.GetValue(collection.ElementAt(i), null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
dt.LoadDataRow(array, true);
}
}
return dt;
}

datatable 转list ,list转datatable的更多相关文章

  1. c# datarow[] 转换成 datatable, List<T> 转datatable

      c# datarow[] 转换成 datatable, List<T> 转datatable DdataRow[]转成Datatable private DataTable ToDat ...

  2. DataTable转Json,Json转DataTable

    // 页面加载时 /// </summary> /// <param name="sender"></param> /// <param ...

  3. DataTable 怎样设置列宽? DataTable中已经有数据了怎样在现实的时候设置它的列宽?

    首先要理解 DataTable是一个虚拟表,里面存有数据列,既然是虚拟的就不能够为它去设置宽度,如果设置的话可以对其绑定的控件进行设置.例如:绑定的控件对象为DataGridView那么可以这样 da ...

  4. 一个DataTable赋值给另一个DataTable的常用方法

    DataView view = new DataView();view.Table = DataTableA;view.RowFilter = "itemType = 'book'" ...

  5. .Net 将一个DataTable分解成多个DataTable

    这两天遇到一个问题,我们所接触 的一个系统在导出数据到Excel的时候,产生了内存溢出的错误.原因在于数据过大,它导出是将所有数据存放在一个DataSet的一个表中,再将这个数 据集放入session ...

  6. ASP.NET操作DataTable各种方法总结(给Datatable添加行列、DataTable选择排序等)

      using System; using System.Collections.Generic; using System.Data; using System.Text; namespace Gz ...

  7. C#DataTable复制、C#DataTable列复制、C#DataTable字段复制

    try { //获取满足条件的数据 DataTable Mdr = datable.Select().ToString("yyyy-MM-dd HH:mm:ss") + " ...

  8. linq 将datatable分组求和在转datatable

    DataTable dt = new DataTable(); dt.Columns.Add("CustomerID"); dt.Columns.Add("aa" ...

  9. (转)在JAVA实现DataTable对象(三)——DataTable对象实现

    大家都是行家,我就直接上代码了,我这个代码应该还是能看懂的,嘻嘻…. 1: import java.util.ArrayList; 2: import java.util.List; 3:   6: ...

随机推荐

  1. ELK Packetbeat 部署指南

    http://www.ttlsa.com/elk/elk-packetbeat-deployment-guide/

  2. 异步io模块

    '''客户端''' import socket,select #####进行封装,将socket对象和要返回的url,和回调函数进行一下封装 class Httprequest(): def __in ...

  3. python-序列化模块

    本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...

  4. dnsmasq详解&手册

    Dnsmasq为小型网络提供网络基础设施:DNS,DHCP,路由器通告和网络引导.它被设计为轻量级且占用空间小,适用于资源受限的路由器和防火墙.它还被广泛用于智能手机和便携式热点的共享,并支持虚拟化框 ...

  5. spring boot 整合 shiro

    shrio官网:https://shiro.apache.org/ Apache Shiro是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理.借助Shiro易于理解的A ...

  6. java 自动包装功能

    基本类型直接存储在堆栈中 基本类型所具有的包装容器,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型 基本类型与包装容器类对应如下:boolean Booleanbyte Byte short ...

  7. 如何修改PDF文件内容,PDF怎么添加背景

    很多的情况下,大家都会遇到PDF文件,不管是在学习中还是在工作中,对于PDF文件,文件的修改编辑是需要用到PDF编辑软件的,在编辑文件的时候,发现文件的页面是有背景颜色的,又该如何修改背景颜色呢,不会 ...

  8. Nginx详解二十三:Nginx深度学习篇之Nginx+Lua开发环境搭建

    Nginx+Lua开发环境 1.下载LuaJIT解释器wget http://luajit.org/download/LuaJIT-2.0.2.tar.gztar -zxvf LuaJIT-2.0.2 ...

  9. Tensorflow 中的优化器解析

    Tensorflow:1.6.0 优化器(reference:https://blog.csdn.net/weixin_40170902/article/details/80092628) I:  t ...

  10. deeplearning 重要调参参数分析

    reference: https://blog.csdn.net/jningwei/article/details/79243800 learning rate:学习率,控制模型的学习进度,决定权值更 ...