• 把dataset对象转换成list集合方法


     1   public static List<T> GetList<T>(DataTable table) where T:new()
     2        {
     3            List<T> list = new List<T>();
     4            //
     5            T t = default(T);
     6            PropertyInfo[] propertypes = null;
     7            string tempName = string.Empty;
     8            try
     9            {
    10                foreach (DataRow row in table.Rows)
    11                {
    12                    //动态创建对象
    13                    t = Activator.CreateInstance<T>();
    14                    t =  new T();
    15                    propertypes = t.GetType().GetProperties();
    16                    foreach (PropertyInfo pro in propertypes)
    17                    {
    18                        tempName = pro.Name;
    19                        if (table.Columns.Contains(tempName))
    20                        {
    21                            object value = row[tempName];
    22                               if (value != null && value != DBNull.Value && row[tempName].ToString() != null &&
    23                                 !row[tempName].ToString().Trim().Equals(""))
    24                            {
    25                                if (tempName.Trim().ToLower().Equals("lastmodify"))
    26                                {
    27                                    // pro.SetValue(t, ConvertHelper.ConvertToTimestamp(Convert.ToString(value)), null);
    28                                }
    29                                else
    30                                {
    31                                    if (pro.PropertyType == typeof(System.Char) || pro.PropertyType == typeof(System.Nullable<System.Char>))
    32                                    {
    33                                        pro.SetValue(t, Convert.ToChar(value), null);
    34                                    }
    35                                    else
    36                                    {
    37                                        pro.SetValue(t, value, null);
    38                                    }
    39 
    40 
    41                                }
    42                            }
    43                        }
    44                    }
    45                    list.Add(t);
    46                }
    47            }
    48            catch (Exception ex)
    49            {
    50                throw new Exception(ex.Message);
    51            }
    52            return list;
    53        }
    View Code


    1、  T t = default(T);  表示获得T类型

    2、     t = Activator.CreateInstance<T>(); 根据类型创建对象

    3、获得所有的属性

            propertypes = t.GetType().GetProperties();

    4、 pro.SetValue(t, value, null);设置相应对象的属性值

  • 相关阅读:
    疑问
    linux 7.0+救援模式
    Unity3D手游开发日记(6)
    Unity3D手游开发日记(4)
    Unity3D手游开发日记(5)
    Unity3D手游开发日记(2)
    Unity3D手游开发日记(3)
    Unity3D手游开发日记(1)
    十大最佳Leap Motion体感控制器应用
    unity3d模型不接受光照
  • 原文地址:https://www.cnblogs.com/topguntopgun/p/3987755.html
Copyright © 2020-2023  润新知