2009-10-06 2 views
7

Предоставляет ли Type.GetProperties() определенный порядок для результата PropertyInfo []? Например, возвращая их в алфавитном порядке по имени свойства или порядку, который они отображают в коде. Или порядок не определен?Предоставляет ли Type.GetProperties() определенный заказ для результата PropertyInfo []?

ответ

13

От MSDN:

Метод GetProperties не свойства возвращают в определенном порядке , такие как алфавитный или порядке декларации. Ваш код не должен зависит от заказа, в котором возвращаются , так как это порядок варьируется.

+2

Doh! Я, должно быть, снял эту часть. Примечание для себя: подождите день, прежде чем отправлять мой глупый вопрос. :) –

+1

Кажется, что это непротиворечиво. У меня есть тестовое приложение, которое использует GetProperties для определения и заполнения DataGridView, а также типов и значений, которые всегда соответствуют возврату отдельных вызовов. – ChrisF

+0

@ChrisF: Они в каком-то произвольном порядке или есть шаблон? Если бы я думал, что они будут в порядке, они появятся в коде. –

1

Я думаю, что вы можете сортировать массив снова используя "PropertyInfo.MetadataToken" Как это:

Array.Sort(propertyInfos, delegate(PropertyInfo first, PropertyInfo second) 
    { 
      return first.MetadataToken.CompareTo(second.MetadataToken); 
    });