2

将整数数组转换为枚举内联元素的字符串的最简单方法是什么?我正在考虑类似于执行转换的匿名函数。

var array = new int[] { 1, 2 }
var s = string.Format("{0}", 
                      new [] 
                      { /*inline transform array into the string "1, 2"*/ });
4

4 回答 4

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);

(今天之前我什至没见过!)

于 2010-07-13T10:38:38.717 回答
3

对于 .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 更完整的答案。

于 2010-07-13T10:38:57.993 回答
1

如果您使用的是 .Net 4:

var array = new int[] { 1, 2 };
var s = String.Join(", ", array);

有一个String.Join<T>(string, IEnumerable<T>)重载添加:)

于 2010-07-13T10:42:17.053 回答
0

ReSharper 给了我类似的东西:

    public static string EnumerateToString(this int[] a, string separator)
    {
        return a.Aggregate("", (current, i) => current + i.ToString(separator));
    }
于 2010-07-13T10:42:32.713 回答