将整个对象数组转换为字符串

Dis*_*ive 17 c# string casting object .net-3.5

我有一个类型的数组,object它们是字符串.我想将它们转换为字符串.这样做最快的方法是什么?

例如:我有这个object[]并想转换它所以就是这样string[].

更新:我认为问题在于其中的一些对象object[]实际上是其他对象,如整数.我需要先将它们转换为字符串.请将其包含在您的解决方案中.谢谢.

Dir*_*mar 15

object[] data = new object[] { "hello", "world", "!" };

string[] stringData = data.Cast<string>().ToArray();
Run Code Online (Sandbox Code Playgroud)

如果对象数组包含混合元素,则可以使用以下ConvertAll方法Array:

object[] data = new object[] { "hello", 1, 2, "world", "!" };

string[] stringData = Array.ConvertAll<object, string>(data, o => o.ToString());
Run Code Online (Sandbox Code Playgroud)

  • 为什么使用`List`类的`ConvertAll`已经为`Array`实现了?检查我的答案,看看如何正确地做到这一点. (2认同)

Jar*_*dek 13

string[] output = Array.ConvertAll(objects, item => item.ToString());
Run Code Online (Sandbox Code Playgroud)


cri*_*ito 12

可能不是最有效的方法......当对象不一定是字符串时,它具有工作的好处.

string[] output = (from o in objectArray
                   select o.ToString()).ToArray()
Run Code Online (Sandbox Code Playgroud)

  • 已经有一个数组的转换方法(`Array.ConvertAll`) - LINQ只是让它变慢(例如:不是最快的方式 - 不是CPU而不是程序员). (3认同)
  • `from ... select` 语法很好,但是 `objectArray.Select(o =&gt; o.ToString()).ToArray();` 实际上是更干净的 IMO (2认同)