Подтвердить что ты не робот

PropertyInfo: является ли индексом свойство?

У меня есть следующий код:

PropertyInfo[] originalProperties = myType.GetProperties();

Я хочу исключить из originalProperties все индексы (myVar [ "key" ] появляется как свойство с именем "Item" ).

Каков правильный способ?

Исключить все свойства, в которых propInfo.Name == "Item" не является параметром.

4b9b3361

Ответ 2

Другой вариант заключается в использовании:

myType.GetProperties().Except(myType.GetDefaultMembers().OfType<PropertyInfo>());

GetDefaultMembers вернет все сгенерированные компилятором индексаторы в С#. Преимущество этого состоит в том, что нет необходимости отражать каждое отдельное свойство, чтобы выяснить, какие из них являются индексаторами.

Возможно, это не общее решение для всех разрешенных языков .NET Framework, но я в настоящее время не знаю каких-либо контрпримеров.