2014年5月26日月曜日

なんてステキなString.Join()

こんにちは。yu1rowです。

区切り文字を使った文字列連結に便利な String.Join() のご紹介です。
C# に限らず、区切り文字を使った文字列の連結はちょっと面倒に感じることがあります。
たとえば、以下の例のような{"A","B","C"}のような配列を"A - B - C"みたいに繋げたいとき、どうしますか?

入力配列出力値
{"A","B","C"}"A - B - C"
{"A"}"A"
{}""

.NET では、String に String.Join(String, String[]) というメソッドがありまして、これで上記を実現してくれます。

コード例
string[] arr = new string[]{ "A", "B", "C" };
Console.WriteLine(String.Join(" - ", arr)); // Output: "A - B - C"

便利。使わない理由はないと思う。

ただ、これ入力が String の配列なんで、int 型とか、他の型の配列はいちいち変換しなきゃいけない。
ただし、.NET Framework 4 以降は String.Join(String, Object[]) なんてオーバーロードが追加されまして、これが便利なんですわ。

一応コード例
int[] arr = new int[] { 1, 2, 3 };

// For C# 2.0
Console.WriteLine(String.Join(" - ", Array.ConvertAll(arr, delegate(int n) { return n.ToString(); })));

// For C# 3.0 or later
Console.WriteLine(String.Join(" - ", Array.ConvertAll(arr, n => n.ToString())));

// For .NET Framework 4.0 or later
Console.WriteLine(String.Join(" - ", arr));


使わんテはありまへんな! 今日のネタはこれだけ。それでは!

0 件のコメント:

コメントを投稿