Задать вопрос
ArXen42
@ArXen42

Как получить элементы массива или списка через рефлекцию (отражение, reflection)?

Вроде простой вопрос, но поверхностный гугл и msdn не дали ответа на вопрос, видимо плохо искал. Я обрабатываю некий объект. И если он оказался массивом, мне нужно рекурсивно обращаться ко всем его элементам. Главная проблема - это не обязательно может быть массив, т.е. я не могу с ним индексный оператор [] использовать.
Т.е. упрощенно код выглядит так:
...
if (obj.GetType().IsArray)
	{
		//Получить элементы массива obj
	}
  • Вопрос задан
  • 541 просмотр
Подписаться 1 Оценить Комментировать
Решение пользователя Deerenaros К ответам на вопрос (3)
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Не понял, что значит "поверхностный гугл".

if (obj.GetType().IsArray)
  {
    obj.GetType().GetMethod("GetValue", typeof(int)).Invoke(obj, index);
  }


Однако, возможно проще будет использовать DLR.
Ответ написан