将整数数组转换为枚举内联元素的字符串的最简洁方法是什么?我正在考虑执行转换的匿名函数。
var array = new int[] { 1, 2 }
var s = string.Format("{0}",
new []
{ /*inline transform array into the string "1, 2"*/ });
答案 0 :(得分:7)
使用string.Join
。在.NET 3.5及更早版本中,您需要先转换为字符串数组;在.NET 4中,有一个重载IEnumerable<T>
。所以取决于你的版本:
.NET 2.0或3.0 / C#2:
string s = string.Join(", ",
Array.ConvertAll(delegate(int x) { return x.ToString(); });
.NET 2.0或3.0 / C#3:
string s = string.Join(", ", Array.ConvertAll(x => x.ToString());
.NET 3.5 / C#3:
string s = string.Join(", ", array.Select(x => x.ToString()).ToArray());
(或者如果您愿意,可以使用适用于.NET 2.0的版本。)
.NET 4:
string s = string.Join(", ", array);
(我今天才看到它!)
答案 1 :(得分:3)
使用String.Join,适用于.NET 4.0:
var s = String.Join(", ",array);
这是有效的,因为String.Join现在有一个带有IEnumerable&lt; T&gt;的重载,
对于3.5,您可以使用
var s = String.Join(", ", array.Select(n => n.ToString()).ToArray());
对于以前的.NET版本,请参阅Jon Skeets更完整的答案。
答案 2 :(得分:1)
如果你在.Net 4:
var array = new int[] { 1, 2 };
var s = String.Join(", ", array);
答案 3 :(得分:0)
ReSharper给了我类似的东西:
public static string EnumerateToString(this int[] a, string separator)
{
return a.Aggregate("", (current, i) => current + i.ToString(separator));
}