|
.NET TIPS
StringBuilderオブジェクトの文字列を簡単にクリアするには?[4以降、C#、VB]
デジタルアドバンテージ 遠藤 孝信
2010/05/20 |
|
|
「TIPS:StringBuilderオブジェクトの文字列をクリアするには?」では、StringBuilderクラス(System.Text名前空間)のオブジェクト内の文字列をクリアする方法として、Lengthプロパティに0を代入する方法と、インスタンスを再作成する方法の2つを紹介した。
.NET Framework 4では、オブジェクトの文字列をクリアするための「Clearメソッド」が、StringBuilderクラスに新しく追加されている。使い方は簡単で、引数もなしに単に呼び出すだけでよい。
以下は冒頭に挙げたTIPSのサンプル・プログラムを修正したもので、Lengthプロパティの設定の代わりに、Clearメソッドを呼び出して、テキストをクリアしている例だ。
using System;
using System.Text;
class Program {
static void Main() {
string[][] bigtable = new string[][] {
new string[] {"1", "a", "あ"},
new string[] {"2", "b", "い"},
new string[] {"3", "c", "う"},
new string[] {"4", "d", "え"},
};
StringBuilder sb = new StringBuilder(); // インスタンス作成
foreach (string[] row in bigtable) { // 表の各行に対して
foreach (string s in row) { // 行の各セルに対して
sb.Append(s);
}
Console.WriteLine(sb);
// sb.Length = 0; // StringBuilderのクリア
sb.Clear(); // .NET 4ではClearメソッドが利用可
}
}
}
|
Imports System
Imports System.Text
Class Program
Shared Sub Main()
Dim bigtable As String()() = New String()() { _
New String() {"1", "a", "あ"}, _
New String() {"2", "b", "い"}, _
New String() {"3", "c", "う"}, _
New String() {"4", "d", "え"}}
Dim builder As New StringBuilder() ' インスタンス作成
For Each row As String() In bigtable ' 表の各行に対して
For Each s As String In row ' 行の各セルに対して
builder.Append(s)
Next
Console.WriteLine(builder)
' builder.Length = 0 ' StringBuilderのクリア
builder.Clear() ' .NET 4ではClearメソッドが利用可
Next
End Sub
End Class
|
|
ClearメソッドによるStringBuilderのクリア(上:C#、下:VB) |
Clearメソッドは、内部的には単にLengthプロパティに0をセットしているだけのようだが、メソッドになったことで、コーディングの意図を明確に表すことができる。
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間