将整数数组转换为逗号分隔的字符串

Hai*_*vgi 253 c# arrays string

这是一个简单的问题; 我是C#的新手,我该如何执行以下操作

  • 我想将整数数组转换为逗号分隔的字符串.

我有

int[] arr = new int[5] {1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)

我想将它转换为一个字符串

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

Che*_*hen 501

var result = string.Join(",", arr);
Run Code Online (Sandbox Code Playgroud)

这使用以下重载string.Join:

public static string Join<T>(string separator, IEnumerable<T> values);
Run Code Online (Sandbox Code Playgroud)

  • Pre .NET 4 string.Join(",",Array.ConvertAll(arr,i => i.ToString())) (6认同)
  • @Kory:使用String.Split方法,请参阅https://msdn.microsoft.com/en-us/library/system.string.split(v=vs.110).aspx (3认同)

lep*_*pie 128

.NET 4

string.Join(",", arr)
Run Code Online (Sandbox Code Playgroud)

.NET早些时候

string.Join(",", Array.ConvertAll(arr, x => x.ToString()))
Run Code Online (Sandbox Code Playgroud)

  • 感谢.NET4之前的版本! (17认同)

Man*_*yak 10

int[] arr = new int[5] {1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)

您可以使用Linq

String arrTostr = arr.Select(a => a.ToString()).Aggregate((i, j) => i + "," + j);
Run Code Online (Sandbox Code Playgroud)


naw*_*fal 5

您可以使用一对扩展方法来简化此任务:

public static string ToDelimitedString<T>(this IEnumerable<T> lst, string separator = ", ")
{
    return lst.ToDelimitedString(p => p, separator);
}

public static string ToDelimitedString<S, T>(this IEnumerable<S> lst, Func<S, T> selector, 
                                             string separator = ", ")
{
    return string.Join(separator, lst.Select(selector));
}
Run Code Online (Sandbox Code Playgroud)

所以现在只需:

new int[] { 1, 2, 3, 4, 5 }.ToDelimitedString();
Run Code Online (Sandbox Code Playgroud)