Преобразуйте Систему. Массив для строкового представления []

У меня есть Система. Массив, который я должен преобразовать в строку []. Существует ли лучший способ сделать это, чем просто цикличное выполнение через массив, называя ToString на каждом элементе, и сохраняя к строке []? Проблема, я не обязательно знаю тип элементов до времени выполнения.

40
задан KrisTrip 28 December 2009 в 18:07
поделиться

2 ответа

Как насчет использования LINQ?

string[] foo = someObjectArray.OfType<object>().Select(o => o.ToString()).ToArray();
66
ответ дан 27 November 2019 в 01:28
поделиться

Это просто Массив ? Или это (например) объект[]? Если да:

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[], то придется зацикливать вручную.

.
13
ответ дан 27 November 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: