Alexeytur
@Alexeytur

Eсть ли универсальный способ обойти массив элементов произвольного типа?

Добрый день.

Я получаю массив в переменной типа object, и мне нужно обойти его элементы и вызвать ToString();

Для массива, у которого элементы - ссылочные типы, срабатывает
object[] array = (object[])prop.Value;

Но для массива с элементами-значениями, не помогают ни
object[] array = (object[])prop.Value; // InvalidCastException
ValueType[] array = (ValueType[])prop.Value; // InvalidCastException


Получается, для массивов с типами-значениями нужно проверять все возможные типы
if(prop.Value is ushort[])
и т.д.?
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
@Ksarrik
Как вариант можно привести к интерфейсу IEnumerable и сделать проход:
int[] test = new[] { 1, 2, 3 };
object objectTest = (object)test;
IEnumerable elements = (IEnumerable)objectTest;
foreach (object obj in elements)
   {
      Console.WriteLine(obj.ToString());
   }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы