Не знаю, как оно работает, но получилось вот так:
Type objType = obj.GetType();
if (objType.IsArray)
{
IEnumerable array = obj as IEnumerable;
foreach (var element in array)
//Действия над элементами
}
За Invoke спасибо, теперь хоть знаю, что это такое и зачем. Я сначала пытался сделать так:
for (int i = 0; i < (int)(objType.GetProperty("Length").GetGetMethod().Invoke(obj))); i++)
var element = objType.GetMethod("GetValue", typeof(int)).Invoke(obj, i);
Но оно вызывает ошибки, как минимум первый Invoke для получения длины массива. Для общего развития, что здесь не так?
P.P.S. прикладываю ошибки:
![d4c9c4838d0d4fefac017e3b18ee02c7.png](//habrastorage.org/files/d4c/9c4/838/d4c9c4838d0d4fefac017e3b18ee02c7.png)
//------------------------------------------------------------