У меня есть массив объектов, и я хочу преобразовать его в массив определенного типа. У меня есть тип, чтобы преобразовать его в который я получаю во время выполнения. Но у меня возникла проблема с фактическим преобразованием.
Если я использую Convert.ChangeType, я получаю ошибку, что Object должен реализовать IConvertible
Array.ConvertAll основан на шаблонах и требует, чтобы я передавал тип назначения в качестве шаблона, который я знаю только во время выполнения. Я даже пытался использовать рефлексию для вызова этого метода, но я не могу передать лямбда-выражение в качестве аргумента методу MethodInfo.Invoke.
Есть идеи?
Правильно, у меня есть следующее, которое не работает:
Type convertTo = GetFinalType();
Object[] objArr = GetObjectArray();
var arr = Array.ConvertAll(objArr,elem=> Convert.ChangeType(elem,convertTo));