方式一:通过循环数组拼接的方式;
int[] types = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; string result = string.Empty; for (int i = 0; i < types.Length; i++) { result += types[i]; if (i < types.Length - 1) result += ","; } MessageBox.Show(result);
方式二:使用string 对象中Join方法实现;
int[] types = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; string result = string.Join(",", types); MessageBox.Show(result);
根据上述的两种方式,可以看到使用第二种代码相对简洁了很多;
C# 中 String. Join 方法 是 连接指定数组的元素或集合的成员,在每个元素或成员之间使用指定的分隔符。
Join方法还有好几个重载方法,如下图:
可以根据不同的转换需求去使用,在此就不举例了。
那么,两种方法的效率那个更高一些呢?来个简单的测试

int[] types = new int[10000]; for (int i = 0; i < 10000; i++) { types[i] = i; } DateTime start = DateTime.Now; //方法1 string result = string.Empty; for (int i = 0; i < types.Length; i++) { result += types[i]; if (i < types.Length - 1) result += ","; } //方法二 //string result = string.Join(",", types); DateTime end = DateTime.Now; MessageBox.Show((end - start).TotalMilliseconds.ToString());
方法1和方法2每个方法分别运行10次,求个平均值:
方法类型 | 第1次 | 第2次 | 第3次 | 第4次 | 第5次 | 第6次 | 第7次 | 第8次 | 第9次 | 第10次 | 平均值(单位:毫秒) |
方法1 | 259 | 161 | 150 | 169 | 157 | 151 | 159 | 200 | 143 | 163 | 171.2 |
方法2 | 12 | 1 | 4 | 2 | 2 | 1 | 1 | 0.9 | 1 | 2.9 | 2.78 |
通过上面的对比,可以看出方法2有绝对的优势,并且代码也比较简洁,所以,在有Int数组转换string字符串的需求的时候,推荐使用方法2。