Не знаю, как оно работает, но получилось вот так:
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. прикладываю ошибки:
//------------------------------------------------------------