关于C#:将整数数组转换为逗号分隔的字符串

Convert array of integers to comma-separated string

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

  • 我想把一个整数数组转换成一个逗号分隔的字符串。

我有

1
int[] arr = new int[5] {1,2,3,4,5};

我想把它转换成一个字符串

1
string =>"1,2,3,4,5"

1
var result = string.Join(",", arr);

这将使用以下string.Join的过载:

1
public static string Join<T>(string separator, IEnumerable<T> values);


.NET 4

1
string.Join(",", arr)

早期网络

1
string.Join(",", Array.ConvertAll(arr, x => x.ToString()))


1
int[] arr = new int[5] {1,2,3,4,5};

你可以用LINQ

1
String arrTostr = arr.Select(a => a.ToString()).Aggregate((i, j) => i +"," + j);

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

1
2
3
4
5
6
7
8
9
10
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));
}

所以现在:

1
new int[] { 1, 2, 3, 4, 5 }.ToDelimitedString();

使用linq Aggregate方法将整数数组转换为逗号分隔的字符串

1
2
3
var intArray = new []{1,2,3,4};
string concatedString = intArray.Aggregate((a, b) =>Convert.ToString(a) +"," +Convert.ToString( b));
Response.Write(concatedString);

输出将是

1,2,3,4

如果没有安装.NET 4,这是可以使用的解决方案之一。