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

String.Join を使用すると、.NET 4.0 の場合:

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 に答える