.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をセットしているだけのようだが、メソッドになったことで、コーディングの意図を明確に表すことができる。End of Article

利用可能バージョン:.NET Framework 4以降
カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:StringBuilderクラス(System.Text名前空間)
関連TIPS:StringBuilderオブジェクトの文字列をクリアするには?

この記事と関連性の高い別の.NET TIPS
StringBuilderオブジェクトの文字列をクリアするには?
コンソール画面をクリアするには?
文字列の長さを取得するには?
文字列を連結するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間