List<int[]>怎么转化为DataTable型

问题描述

现在List<int[]>list=newList<int[]>且list有值,为了说的比较明白,现把每条值以下列方式显示出来:list[0][0]='a0'list[0][1]='a1'list[0][2]='a2'list[1][0]='b0'list[1][1]='b1'list[1][2]='b2'现要求转为DataTable型,显示如下:a0,a1,a2b0,b1,b2请各位大神指教!

解决方案

解决方案二:
双层for循环
解决方案三:
publicclassListToDataTable{publicstaticDataTableconvert2Table<Object>(List<Object>list){DataTabletable=newDataTable();if(list.Count>0){PropertyInfo[]properties=list[0].GetType().GetProperties();List<string>columns=newList<string>();foreach(PropertyInfopiinproperties){table.Columns.Add(pi.Name);columns.Add(pi.Name);}foreach(Objectiteminlist){object[]cells=getValues(columns,item);table.Rows.Add(cells);}}returntable;}privatestaticobject[]getValues(List<string>columns,objectinstance){object[]ret=newobject[columns.Count];for(intn=0;n<ret.Length;n++){PropertyInfopi=instance.GetType().GetProperty(columns[n]);objectvalue=pi.GetValue(instance,null);ret[n]=value;}returnret;}}

解决方案四:
///<summary>///将集合类转换成DataTable///</summary>///<paramname="list">集合</param>///<returns></returns>publicstaticDataTableToDataTable(IListlist){DataTableresult=newDataTable();if(list.Count>0){PropertyInfo[]propertys=list[0].GetType().GetProperties();foreach(PropertyInfopiinpropertys){result.Columns.Add(pi.Name,pi.PropertyType);}for(inti=0;i<list.Count;i++){ArrayListtempList=newArrayList();foreach(PropertyInfopiinpropertys){objectobj=pi.GetValue(list[i],null);tempList.Add(obj);}object[]array=tempList.ToArray();result.LoadDataRow(array,true);}}returnresult;}///<summary>///将泛型集合类转换成DataTable///</summary>///<typeparamname="T">集合项类型</typeparam>///<paramname="list">集合</param>///<returns>数据集(表)</returns>publicstaticDataTableToDataTable<T>(IList<T>list){returnConvertX.ToDataTable<T>(list,null);}///<summary>///将泛型集合类转换成DataTable///</summary>///<typeparamname="T">集合项类型</typeparam>///<paramname="list">集合</param>///<paramname="propertyName">需要返回的列的列名</param>///<returns>数据集(表)</returns>publicstaticDataTableToDataTable<T>(IList<T>list,paramsstring[]propertyName){List<string>propertyNameList=newList<string>();if(propertyName!=null)propertyNameList.AddRange(propertyName);DataTableresult=newDataTable();if(list.Count>0){PropertyInfo[]propertys=list[0].GetType().GetProperties();foreach(PropertyInfopiinpropertys){if(propertyNameList.Count==0){result.Columns.Add(pi.Name,pi.PropertyType);}else{if(propertyNameList.Contains(pi.Name))result.Columns.Add(pi.Name,pi.PropertyType);}}for(inti=0;i<list.Count;i++){ArrayListtempList=newArrayList();foreach(PropertyInfopiinpropertys){if(propertyNameList.Count==0){objectobj=pi.GetValue(list[i],null);tempList.Add(obj);}else{if(propertyNameList.Contains(pi.Name)){objectobj=pi.GetValue(list[i],null);tempList.Add(obj);}}}object[]array=tempList.ToArray();result.LoadDataRow(array,true);}}returnresult;}

解决方案五:
该回复于2012-01-12 15:54:56被版主删除
解决方案六:
引用3楼fengyarongaa的回复:

C#code///<summary>///将集合类转换成DataTable///</summary>///<paramname="list">集合</param>///<returns></returns>publicstaticDataTableToDataTable(IList……

给力
解决方案七:
各位都亲自测试过吗?

时间: 2024-10-25 20:09:35

List&amp;lt;int[]&amp;gt;怎么转化为DataTable型的相关文章

c++-在C++中,int();这么一行代码表达什么意思?

问题描述 在C++中,int();这么一行代码表达什么意思? 无意中发现的问题,简化了一下,以下代码C++是可以编译运行的,没发现有任何作用.stopStreamCBFun是数据类型,代码中当成函数运行竟然也能正常工作.我又加了一行int();也可以编译运行,当然实际上不管加几行这种代码,用gdb运行b main后总是会跳过这些代码,直接跳到下一行return 0; 也就是说这些代码其实是无效的,这个问题本身没什么用,我只是好奇为什么这样的代码编译能通过,类似的代码在C里面是会提示出错的.欢迎大

JAVA程序员面试32问 选择自 liujun999999 的 Blog (本人做收藏)

程序|程序员 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 第五,HashMap和Hashtable的区别. 第六,Collection 和 Collec

Java操作PDF之iText超入门

http://www.open-open.com/lib/view/open1339726488115.html   iText是著名的开放项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转化为PDF文件. http://itextpdf.com/ 版本:itextpdf-5.2.1.jar 1.生成一个PDF ? 1 2 3 4 5 6 7 8 9 10 //Step 1-Create a Document. Docu

一些LinuxC的小知识点(一)

以下代码在Federo9上试验成功.   一.格式化输入16进制字符串 printf("Format:%.2x\n",10); 输入结果:   二.测试各类型的占用的字节数 int main(int argc, char *argv[]) { int OutputHex = 1; unsigned char aValue=10; char Buffer[10]; int len=sprintf(Buffer, OutputHex ? "%.2X " : "

union关键字

union 关键字的用法与struct 的用法非常类似. union 维护足够的空间来置放多个数据成员中的"一种",而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址.例子如下: union StateMachine {    char character;    int number;    char *str;    double exp; }; 一个union 只配置一个足够大的空间以来容

彻底搞定C语言指针 第六篇

指向另一指针的指针 一.针概念: 早在本系列第二篇中我就对指针的实质进行了阐述 .今天我们又要学习一个叫做指向另一指针地址的指针.让我们先回顾一下指针的概念吧! 当我 们程序如下申明变量: short int i: char a: short int * pi: 程序会 在内存某地址空间上为各变量开辟空间,如下图所示. 内存地址→6 7 8 9 10 11 12 13 14 15 ------------------- --------------------------------------

Java 面试中的陷阱

自己也面试了很多家公司,觉得这些对今后的学习和工作非常有帮助. 总结的一些知识点非常有代表性.以下是正文. --------------------------------------------------------------------------------------------- 找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试是没

MFC函数简单解释(更新至28日凌晨)

以该博文http://blog.csdn.net/column/details/megogame.html 为基础,涉及到的每个都尽量解释和说明其用法. 以下是流程图,由于太大,请尝试右键另存为查看.关于函数请跳过图的部分继续往下看 ------------------------ 函数或命令:   所属类:   原型:   说明:   参考链接:   ------------------------ 函数或命令: DC 所属类:   原型:   说明: device context,叫设备环境

JSP渐进学习教程2

js|教程 //---------------------------------------------------------------------------------------------- 内部对象 out(向客户端输出各种数据类型) 重要方法: out.print(类型) 或 out.println(类型):换行输出 out.newLine():输出一个换行符号 out.flush():输出缓冲区的数据 out.close():关闭输出流 out.clearBuffer():清