我有一个值为3,99,6的int数组。如何使用linq将数组转换为字符串3,99,6
?
答案 0 :(得分:22)
int[] list = new [] {3, 99, 6};
string s = string.Join(",", list.Select(x => x.ToString()).ToArray());
编辑,C#4.0
使用C#4.0,还有另一个string.Join
重载,最终允许直接传递IEnumerable<string>
或IEnumerable<T>
。无需创建数组,也无需调用隐式调用的ToString()
:
string s = string.Join(",", list);
使用显式格式化为字符串:
string s = string.Join(",", list.Select(x => x.ToString(/*...*/));
答案 1 :(得分:12)
Stefan的解决方案是正确的,而.NET 3.5几乎是必需的。在.NET 4中,有一个overload of String.Join
需要IEnumerable<string>
,因此您可以使用:
string s = string.Join(",", list.Select(x => x.ToString());
甚至只是:
string s = string.Join(",", list);