|   | 
 
|  
 .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 記事ランキング
		
		
			本日
			月間