refelection是否按字母顺序返回属性的名称?

时间:2014-02-19 12:37:14

标签: c#

List<PropertyInfo> propInfo = typeof(MM_WIRES_OFFICE_ACC_CUTOFF).GetProperties().ToList();
DbParams[] parm = new DbParams[propInfo.Count];
int count = 0;

foreach (var info in propInfo)
{
    parm[count] = new DbParams(info.Name, DbType.String, entity.ACCOUNT);

    count++;
}

我能这样做吗?我如何确保info.Name是相同的属性实体... 反射是否按字母顺序排列属性?

3 个答案:

答案 0 :(得分:2)

来自MSDN

  

GetProperties方法不返回特定属性   订单,例如字母或声明订单。你的代码一定不能   取决于返回属性的顺序,因为那样   订单各不相同。

答案 1 :(得分:1)

不,但你可以对它进行排序:GetProperties()。OrderBy(p =&gt; p.Name)

答案 2 :(得分:1)

根据the fine manual

  

GetProperties方法不以特定顺序返回属性,例如按字母顺序或声明顺序。您的代码不得依赖于返回属性的顺序,因为该顺序会有所不同。

使用OrderBy获取所需的订单。