与Array.toString()

Pos*_*Guy 24 c#

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

Ada*_*son 53

选项1

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

string[] values = ...;

string concatenated = string.Join(",", values);
Run Code Online (Sandbox Code Playgroud)

选项2

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

string concatenated = string.Join(",",
                          values.Select(x => x.ToString()).ToArray());
Run Code Online (Sandbox Code Playgroud)

  • @Sky:string.Split是一个BCL类函数.在任何其他.NET语言中,此功能的签名都没有区别.我并不是说没有语言没有"把价值放在首位"(虽然我不确定这是一种对语言进行分类的方式),我说的是你是否在C#中使用它, VB.NET等你首先会通过分隔符. (3认同)
  • @coffee:任何数组都已经实现了'IEnumerable`和`IEnumerable <T>`(其中`T`是数组的类型).我不确定我理解你关于`string.Split`的问题. (2认同)
  • 在(不太可能的)事件中你(或者更可能是发现这个问题的人)有一个名为`c`的`char []`数组,那么你只需要`new string(c);` .我在这里添加的是因为我刚才提醒我时感到愚蠢; o) (2认同)

Jon*_*eet 15

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

string joined = string.Join(",", array.Select(x => x.ToString()).ToArray());
Run Code Online (Sandbox Code Playgroud)

MoreLINQ有一个内置的方法来做到这一点:

string joined = array.ToDelimitedString();
Run Code Online (Sandbox Code Playgroud)

或明确指定分隔:

string joined = array.ToDelimitedString(",");
Run Code Online (Sandbox Code Playgroud)