C#把list转化为Datatable
来源:互联网 发布:时时彩服务器源码 编辑:程序博客网 时间:2024/06/05 14:27
使用linq的时候,经常需要 select new{ ...不固定的字段... } ,如何读取这些字段的单个值?通常两种做法:1)object对象反射是可以做的 2)在反射的基础上,转化为datatable 也可以
如下实例:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using ConsoleApplication1;using System.Data;using System.Collections;using System.Reflection;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { /*创建数据源*/ List<myclass> l = new List<myclass>(); for (int i = 0; i < 10; i++) { myclass mc = new myclass(); mc.age = i; mc.name = "myname" + i; l.Add(mc); } /*创建datatable*/ DataTable dt = new DataTable(); /*返回一个有任意字段的 List<Object>对象, select new 中的namefull就是自己随意添加的字段*/ List<Object> rs = (from r in l select new { name = r.name, namefull = r.name + r.age, age = r.age }).ToList<Object>(); /*把List<Object>对象转化为Datatable对象*/ dt = ToDataTableTow(rs); /*读取Datatable对象*/ foreach (DataRow dr in dt.Rows) { /*按照拼接的字段名称 读取内容*/ Console.WriteLine(dr["name"].ToString() +"-----------------"+ dr["namefull"].ToString()); } Console.Read(); } /// <summary> /// 将集合类转换成DataTable /// </summary> /// <param name="list">集合</param> /// <returns></returns> public static DataTable ToDataTableTow(IList list) { DataTable result = new DataTable(); if (list.Count > 0) { PropertyInfo[] propertys = list[0].GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { result.Columns.Add(pi.Name, pi.PropertyType); } for (int i = 0; i < list.Count; i++) { ArrayList tempList = new ArrayList(); foreach (PropertyInfo pi in propertys) { object obj = pi.GetValue(list[i], null); tempList.Add(obj); } object[] array = tempList.ToArray(); result.LoadDataRow(array, true); } } return result; } } public class myclass { public string name; public int age; }}
结果:
0 0
- C#把list转化为Datatable
- C#把list转化为Datatable
- C#将DataTable转化为List<T>
- datatable 转化为 List
- DataTable 转化为List
- 把Datareader转化为DataTable
- 【C# 工具类】将DataTable转化为 List集合/对象
- C#中DataTable转化为List<T>解析
- 泛型List转化为DataTable
- 将datatable转化为list
- datatable转化为list<T>
- datatable,ilist ,list,转化为json格式
- DataTable转化为List的方法
- 将DataTable转化为List<T>
- 将List数组转化为datatable
- c#将xml字符串转化为 DataTable
- C# DataRow[]转化为DataTable的方法
- C# dataTable转化为JSON数据
- Transposition Table
- hdu 1241 Oil Desposits
- Android MediaStore裁剪图片3
- poj 1182 食物链 //带权并查集
- gdb相关
- C#把list转化为Datatable
- Specified VM install not found: type Standard VM, name jdk1.x
- Photoshop脚本 > 批量生成各尺寸的iOS图标
- smarty语法
- 编译器的工作过程
- Iterative Deepening
- [django1.6]跑批任务错误(2006, 'MySQL server has gone away')
- 数组中添加一个元素
- The History Heuristic