list转datatable(支持匿名类型)

  • A+
所属分类:.NET技术
摘要

应用举例: 

 /// <summary>         /// List转成DataTable         /// </summary>         /// <typeparam name="T"></typeparam>         /// <param name="varlist"></param>         /// <returns></returns>         public static DataTable ListToDataTable<T>(IEnumerable<T> varlist)         {             DataTable dtReturn = new DataTable();             PropertyInfo[] oProps = null;              if (varlist == null) return dtReturn;              foreach (T rec in varlist)             {                 if (oProps == null)                 {                     oProps = rec.GetType().GetProperties();                     foreach (PropertyInfo pi in oProps)                     {                         Type colType = pi.PropertyType;                          if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition()                         == typeof(Nullable<>)))                         {                             colType = colType.GetGenericArguments()[0];                         }                          dtReturn.Columns.Add(new DataColumn(pi.Name, colType));                     }                 }                  DataRow dr = dtReturn.NewRow();                  foreach (PropertyInfo pi in oProps)                 {                     dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue                     (rec, null);                 }                  dtReturn.Rows.Add(dr);             }             return dtReturn;         }

应用举例:

list转datatable(支持匿名类型)