У меня есть Система. Массив, который я должен преобразовать в строку []. Существует ли лучший способ сделать это, чем просто цикличное выполнение через массив, называя ToString на каждом элементе, и сохраняя к строке []? Проблема, я не обязательно знаю тип элементов до времени выполнения.
Как насчет использования LINQ?
string[] foo = someObjectArray.OfType<object>().Select(o => o.ToString()).ToArray();
Это просто Массив
? Или это (например) объект[]
? Если да:
object[] arr = ...
string[] strings = Array.ConvertAll<object, string>(arr, Convert.ToString);
Обратите внимание, что любой 1-d массив ссылочных типов должен быть приведен к объекту[]
(даже если это на самом деле, например, Foo[]
), но типов значений (таких как int[]
) быть не может. Поэтому можно попробовать:
Array a = ...
object[] arr = (object[]) a;
string[] strings = Array.ConvertAll<object, string>(arr, Convert.ToString);
Но если это что-то вроде int[]
, то придется зацикливать вручную.