Вы также можете создавать обобщенные c методы:
Давайте создадим локальную переменную для типа элемента, чтобы мы могли ее повторно использовать.
var elementType = fi.GetValue(myObj).GetType().GetElementType();
...
Получить метод приведения и массив метод из перечислимого класса linq.
var castMethod = typeof(System.Linq.Enumerable).GetMethod("Cast").MakeGenericMethod(elementType);
var arrayMethod = typeof(System.Linq.Enumerable).GetMethod("ToArray").MakeGenericMethod(elementType);
Вызовите методы с нулевым значением в качестве первого аргумента для методов stati c.
var casted = castMethod.Invoke(null, new[] { list });
var array = arrayMethod.Invoke(null, new[] { casted });
fi.SetValue(myObj, array);
Может быть более разумный способ сделать это , но это может начать вас.