将整数数组转换为枚举内联元素的字符串的最简单方法是什么?我正在考虑类似于执行转换的匿名函数。
var array = new int[] { 1, 2 }
var s = string.Format("{0}",
new []
{ /*inline transform array into the string "1, 2"*/ });
将整数数组转换为枚举内联元素的字符串的最简单方法是什么?我正在考虑类似于执行转换的匿名函数。
var array = new int[] { 1, 2 }
var s = string.Format("{0}",
new []
{ /*inline transform array into the string "1, 2"*/ });
使用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);
(今天之前我什至没见过!)
对于 .NET 4.0,使用 String.Join:
var s = String.Join(", ",array);
这是因为 String.Join 现在有一个采用 IEnumerable<T> 的重载,
对于 3.5,您可以使用
var s = String.Join(", ", array.Select(n => n.ToString()).ToArray());
对于以前的 .NET 版本,请参阅 Jon Skeets 更完整的答案。
如果您使用的是 .Net 4:
var array = new int[] { 1, 2 };
var s = String.Join(", ", array);
ReSharper 给了我类似的东西:
public static string EnumerateToString(this int[] a, string separator)
{
return a.Aggregate("", (current, i) => current + i.ToString(separator));
}