using System;

using System.Collections.Generic;using System.Text;using System.Data;using System.Collections;using System.Reflection;namespace KycBaseModule{ public class KycFunction { public KycFunction() { } /// <summary> /// 实现对IList到DataSet的转换 /// </summary> /// <param name="ResList">待转换的IList</param> /// <returns>转换后的DataSet</returns> public static DataSet ListToDataSet(IList ResList) { DataSet RDS=new DataSet(); DataTable TempDT = new DataTable(); //此处遍历IList的结构并建立同样的DataTable System.Reflection.PropertyInfo[] p = ResList[0].GetType().GetProperties(); foreach (System.Reflection.PropertyInfo pi in p) { TempDT.Columns.Add(pi.Name,System.Type.GetType(pi.PropertyType.ToString())); } for (int i = 0; i < ResList.Count; i++) { IList TempList = new ArrayList(); //将IList中的一条记录写入ArrayList foreach (System.Reflection.PropertyInfo pi in p) { object oo = pi.GetValue(ResList[i], null); TempList.Add(oo); } object[] itm=new object[p.Length]; //遍历ArrayList向object[]里放数据 for (int j = 0; j < TempList.Count; j++) { itm.SetValue(TempList[j], j); } //将object[]的内容放入DataTable TempDT.LoadDataRow(itm, true); } //将DateTable放入DataSet RDS.Tables.Add(TempDT); //返回DataSet return RDS; } }}