C#遍历/反射 属性/字段

public static string SortParam<T>(T t)
        {
            string tStr = string.Empty;
            if (t == null)
            {
                return string.Empty;
            }
            System.Reflection.PropertyInfo[] properties = t.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
            if (properties.Length <= 0)
            {
                return string.Empty;
            }
            foreach (System.Reflection.PropertyInfo item in properties.OrderBy(m => m.Name))//排序后组成字符串
            {
                string name = item.Name;//字段名称
                object value = item.GetValue(t, null);//值
                if (item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String"))
                {
                    if (value != null)
                        tStr += (string.Format("{0}{1}", name, value));
                }
                else
                {
                    SortParam(value);//集合字段递归
                }
            }
            //tStr = tStr.OrderBy(m => m).ToList();
            return tStr;
        }

 

public IList<T> GetData(SqlDataReader reader)  
    {  
        IList<T> list = new List<T>();  
        Type type = typeof(T);  
        PropertyInfo[] properties = type.GetProperties();  
  
        while (reader.Read())  
        {  
            T t = Activator.CreateInstance<T>();  
            for (int i = 0; i < properties.Length; i++)  
            {  
                properties[i].SetValue(t, reader[i + 1], null);  
  
            }  
  
            list.Add(t);  
        }  
  
        return list;  
    }

转载于:https://www.cnblogs.com/Jerrycjc/p/5151704.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值