我的代码中有一行:
var objects = ExternalApiGetObjects(....);
在开发时我只知道ExternalApiGetObjects
返回Object
个实例。实际上,我确信objects
变量是某种类型的数组。
我想将objects
变量传递给String.Join
方法,但是在运行时我得到了类似于此的异常:“类型'System.Int32 []'的对象无法转换为类型'System.String [ ]”。“
在大多数情况下,objects
不是字符串数组。它可以是一个int数组,甚至是某个用户类型的数组。我只知道对象是一个数组,我想在该数组的每个项目上调用ToString()
来创建一个类型为string[]
的新项目。
如何将objects
转换为string[]
?
答案 0 :(得分:4)
OP:可能是一个 int数组,甚至是某个用户类型的数组。我才知道 对象是一个数组,我想在每个项目上调用ToString() 该数组用于创建一个类型为string []
的新数组
您可以将其强制转换为IEnumerable
,然后使用Cast<T>
将元素转换为对象,然后选择元素。例如:
object o = new int[] { 1, 2, 3 };
var array = (o as IEnumerable).Cast<object>().Select(x => x.ToString()).ToArray();