DataTable转List列表(摘抄记录)

 public class DataTableUtils
    {
        #region DataTable转列表

        /// <summary>
        /// DataTable转列表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="table"></param>
        /// <returns></returns>
        public static List<T> GetEntityList<T>(DataTable table) where T : class, new()
        {
            List<T> entities = new List<T>();
            foreach (DataRow row in table.Rows)
            {
                T entity = new T();
                foreach (var item in entity.GetType().GetProperties())
                {
                    if (row.Table.Columns.Contains(item.Name) && DBNull.Value != row[item.Name])
                    {
                        Type conversionType = item.PropertyType;

                        if (conversionType.IsGenericType)
                        {
                            NullableConverter nullableConverter = new NullableConverter(conversionType);
                            conversionType = nullableConverter.UnderlyingType;
                        }

                        item.SetValue(entity, Convert.ChangeType(row[item.Name], conversionType), null);
                    }
                }
                entities.Add(entity);
            }
            return entities;
        }
       #endregion
    }

猜你喜欢

转载自www.cnblogs.com/zcbk/p/12161053.html