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;
    }
时间: 2024-11-03 03:45:07

C#遍历/反射 属性/字段的相关文章

Linq多表链接分页,Select new{&quot;需要的字段列..&quot;},配合杨涛Mvcpager,前台遍历展示自定义字段

题前:,Select new{"需要的字段列.."}好处,减少不必要数据的查询,尤其是分布式的时候,网络再不好的情况下,而不必要的数据又很多,Select new{"需要的字段列.."}好处明显 如题,Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段 (1)  我的例子是,(Tb_Mnager)管理员表与(Tb_Role)角色表联查,返回两个表部分字段的组合 如下控制器代码: p

C#反射---属性

C#反射详解 (1)反射获取属性 先讲解一下获取的反射属性的一些枚举参数的含义:BindingFlags Instance|Public:获取公共的的实例属性(非静态的) Instance|NonPublic:获取非公共的的实例属性(非静态的).(private/protect/internal) Static|Public:获取公共的静态属性 Static|NonPublic:获取非公共的静态属性.(private/protect/internal) Instance|Static|Publi

sphinx中复合属性字段sql_attr_multi的用法

sphinx中复合属性字段sql_attr_multi的用法 sql_attr_multi在sphinx可以用来检索有层级关系的数据,效率相当高,如,在数据库中用一个4层的分类,分类下对应着不用的文章,现在需要做一个文章列表,要求,选择第一级分类时属于它的子分类的文章也要显示出来,就可以用下面的方法建索引 sql_query=                 SELECT di.company_document_id as id,di.company_document_id,          

c# XML序列化与反序列化 属性字段标识

序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAttribute("AGE")] public int Age { set; get; } } [XmlRoot("Root")] public class Student : People { [XmlElement("CLASS")] public

如何遍历json属性和动态添加属性

var person= { name: 'zhangsan', pass: '123' , 'sni.ni' : 'sss', hello:function (){ for(var i=0;i<arguments.length;i++){ //在不知参数个数情况下可通过for循环遍历 // arguments这个是js 默认提供 alert("arr["+i+"]="+arguments[i]); } } } //遍历属性 for(var item in pe

关于获得IFeature的属性字段

最近在做管线的相关操作的时候涉及到了几何网络的相关内容,就是IGeometricNetwork这个接口的一些操作,我们在帮助文档的Network Analysis话题中可以找到相关的一些接口,注意不是Network Analyst哦! 在相关接口中我们通过IEIDHelepr,IEnumEIDInfo与IEIDInfo可以获得当前的Network中的某个NetElement对应的Feature,当我们获得这个Feature以后想要通过row["字段"] = item.get_Value

JS/jQuery 遍历对象属性

Javascript For/In 循环: 循环遍历对象的属性 var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=txt + person[x]; } 结果:JohnDoe25 jQuery jQuery.each() 遍历对象属性 var arr = ["one", "two", "three", "fou

[ASP.NET MVC]如何定制Numeric属性/字段验证消息

原文:[ASP.NET MVC]如何定制Numeric属性/字段验证消息 对于一个Numeric属性/字段,ASP.NET MVC会自动进行数据类型的验证(客户端验证),以确保输入的是一个有效的数字,但是呈现在页面上的错误消息总是一段固定的文本:“The field {0} must be a number”,本篇提供一种解决方案使我们可以对此验证消息进行定制.[源代码从这里下载] 目录 一.针对Numeric属性/字段默认验证消息 二.默认的验证消息来源于何处? 三.通过自定义ModelVal

ArcEngine添加地图属性字段

/// <summary> /// 添加地图属性字段 /// </summary> /// <param name="name">名称</param> /// <param name="aliasName">别名</param> /// <param name="length">长度</param> /// <param name="d