在c#/ LINQ中将数组转换为字符串的最短方法

Lor*_*ris 53 c# linq arrays

作为这个问题的完全重复关闭.

我有一个数组/元素列表.我想将其转换为字符串,由自定义分隔符分隔.例如:

[1,2,3,4,5] => "1,2,3,4,5"
Run Code Online (Sandbox Code Playgroud)

在c#中执行此操作的最短/最简单的方法是什么?

我总是通过循环列表并在添加分隔符之前检查当前元素是否不是最后一个元素来完成此操作.

for(int i=0; i<arr.Length; ++i)
{
    str += arr[i].ToString();
    if(i<arr.Length)
        str += ",";
}
Run Code Online (Sandbox Code Playgroud)

是否有LINQ函数可以帮助我编写更少的代码?

Meh*_*ari 145

String.Join(",", arr.Select(p=>p.ToString()).ToArray())
Run Code Online (Sandbox Code Playgroud)

  • @neminem`tring.Join(string,IEnumerable <string>)`在2008年不存在. (10认同)
  • 你实际上并不需要ToArray()... string.Join可以采用IEnumerable,IEnumerable.Select返回一个IEnumerable. (7认同)

Dav*_*itt 39

String.Join(",", array.Select(o => o.ToString()).ToArray());
Run Code Online (Sandbox Code Playgroud)