与Array.toString()

时间:2010-02-11 15:44:05

标签: c#

如果我有一个数组并执行一个ToString那么只是将数组值串在一个长逗号分隔的字符串中,或​​者在数组中是不可能的?

5 个答案:

答案 0 :(得分:50)

选项1

如果你有string个数组,那么你可以使用String.Join

string[] values = ...;

string concatenated = string.Join(",", values);

选项2

如果您正在处理任何其他类型的数组并且您使用的是.NET 3.5或更高版本,则可以使用LINQ:

string concatenated = string.Join(",",
                          values.Select(x => x.ToString()).ToArray());

答案 1 :(得分:15)

你当然可以这样做,但这不是默认行为。最简单的方法(无论如何从.NET 3.5)可能是:

string joined = string.Join(",", array.Select(x => x.ToString()).ToArray());

MoreLINQ有一个内置的方法来执行此操作:

string joined = array.ToDelimitedString();

或明确指定分隔:

string joined = array.ToDelimitedString(",");

答案 2 :(得分:2)

它没有(如你所注意到的)。

对于字符串数组,您可以使用:

string.Join(",", myArray)

对于其他数组我认为你需要自己编写代码。

答案 3 :(得分:1)

不,数组的ToString将为您提供对象的Type name字符串。改为使用String.Join方法。

答案 4 :(得分:1)

要实现此效果,您应该调用String.Join(string,string [])

string[] stringArray = new string[] { "a", "b", "c" };
string.Join(",", stringArray);