Kri*_*rip 40 .net c# arrays system.array
我有一个System.Array,我需要转换为字符串[].有没有更好的方法来做到这一点,而不仅仅是循环遍历数组,在每个元素上调用ToString,并保存到字符串[]?问题是我不一定知道元素的类型,直到运行时.
Cra*_*ntz 67
使用LINQ怎么样?
string[] foo = someObjectArray.OfType<object>().Select(o => o.ToString()).ToArray();
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 13
是Array吗?或者是(例如)object[]?如果是这样:
object[] arr = ...
string[] strings = Array.ConvertAll<object, string>(arr, Convert.ToString);
Run Code Online (Sandbox Code Playgroud)
注意,任何1-d引用类型数组都应该可以转换为object[](例如,实际上Foo[]),但是值类型(例如int[])不能.所以你可以尝试:
Array a = ...
object[] arr = (object[]) a;
string[] strings = Array.ConvertAll<object, string>(arr, Convert.ToString);
Run Code Online (Sandbox Code Playgroud)
但如果它是类似的int[],你将不得不手动循环.