2009-03-09 10 views
3

Javaの場合、java.util.Arraysクラスには、配列を取り、その文字列表現(つまり内容の文字列表現コンマで区切られた配列の全体と、大カッコで囲まれた表現全体(例: "[1、2、3]")。Javaのjava.util.Arrays.toString(...)メソッドに対応する.NET

.NETに相当するメソッド/機能はありますか?

私は手動で配列を反復処理するループ/メソッドを構築するために頼ることなく、これを行う方法を探しています。

答えて

3

String.Joinメソッド。

+0

このソリューションにのみ機能します。 – JaredPar

+0

真。私はそれが頼まれていたものと仮定していた。 –

+0

@Mitch、[1、2、3]の例に基づいて、私は彼がより一般的な解決策を探していると思っていました。しかし、彼はあなたのことを受け入れたので、私はそれを後ろに持っていました。 – JaredPar

1

これを試してみてください[角カッコを自分で追加する必要があります]。それはNULL値を処理しませんが、値型と参照型に対して機能します。これは拡張メソッドなので、配列インスタンスの.ToElementString()を呼び出すことができます。ここで

public static string ToElementString<T>(this T[] array) { 
    var middle = array.Select(x => x.ToString().Aggregate((l,r) => l+","+r); 
    return "[" + middle + "]"; 
} 

はビルダーを使用して、潜在的に(のみプロファイラは確かに知っている)、もう少し効率的になりますバージョンです。また、ヌル値も適切に処理されます。配列がすでに文字列型のとき

public static string ToElementString<T>(this T[] array) { 
    var builder = new StringBuilder(); 
    builder.Append('['); 
    for(int i =0; i < array.Length; i++) { 
    if (i > 0) { 
     builder.Append(','); 
    } 
    builder.Append(array[i]); 
    } 
    builder.Append(']'); 
    return builder.ToString(); 
} 
関連する問題