C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でStringBuilderのMaxCapacity(最大容量)を取得する方法

C#の StringBuilder クラスには、インスタンスが保持できる最大文字数を表す MaxCapacity プロパティが用意されています。このプロパティを参照することで、その StringBuilder が格納できる文字数の上限を確認できます。

MaxCapacity の値を取得する具体的なコード例を見ていきましょう。

サンプルコード1:複数のStringBuilderでMaxCapacityを確認する

以下の例では、異なる方法で初期化した4つの StringBuilder インスタンスを作成し、それぞれの Capacity(現在の容量)と MaxCapacity(最大容量)を出力しています。

using System;
using System.Text;

public class Demo {
   public static void Main(String[] args) {
      StringBuilder strBuilder1 = new StringBuilder("Amy");
      StringBuilder strBuilder2 = new StringBuilder("Katie");
      StringBuilder strBuilder3 = new StringBuilder();
      StringBuilder strBuilder4 = new StringBuilder(5);

      strBuilder2 = strBuilder3;

      Console.WriteLine("StringBuilder3 と StringBuilder2 は等しいか? = " + strBuilder3.Equals(strBuilder2));
      Console.WriteLine("StringBuilder1 の容量 = " + strBuilder1.Capacity);
      Console.WriteLine("StringBuilder1 の最大容量 = " + strBuilder1.MaxCapacity);
      Console.WriteLine("StringBuilder2 の容量 = " + strBuilder2.Capacity);
      Console.WriteLine("StringBuilder2 の最大容量 = " + strBuilder2.MaxCapacity);
      Console.WriteLine("StringBuilder3 の容量 = " + strBuilder3.Capacity);
      Console.WriteLine("StringBuilder3 の最大容量 = " + strBuilder3.MaxCapacity);
      Console.WriteLine("StringBuilder4 の容量 = " + strBuilder4.Capacity);
      Console.WriteLine("StringBuilder4 の最大容量 = " + strBuilder4.MaxCapacity);
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

StringBuilder3 と StringBuilder2 は等しいか? = True
StringBuilder1 の容量 = 16
StringBuilder1 の最大容量 = 2147483647
StringBuilder2 の容量 = 16
StringBuilder2 の最大容量 = 2147483647
StringBuilder3 の容量 = 16
StringBuilder3 の最大容量 = 2147483647
StringBuilder4 の容量 = 5
StringBuilder4 の最大容量 = 2147483647

出力結果から、初期化の方法に関わらず、すべての StringBuilder インスタンスの MaxCapacity2147483647(int型の最大値、約21億)になっていることがわかります。これは .NET 環境における既定の最大容量です。

また、コンストラクタで容量として「5」を指定した strBuilder4 のみ、Capacity が 5 になっている点にも注目してください。それ以外のインスタンスは、既定の容量である 16 が設定されています。

サンプルコード2:Capacity・Length・MaxCapacityの違いを確認する

続いて、Capacity(容量)、Length(実際の文字数)、MaxCapacity(最大容量)の3つのプロパティの違いを確認してみましょう。

using System;
using System.Text;

public class Demo {
   public static void Main(String[] args) {
      StringBuilder strBuilder = new StringBuilder("Amy");

      Console.WriteLine("StringBuilder の容量 = " + strBuilder.Capacity);
      Console.WriteLine("StringBuilder の長さ = " + strBuilder.Length);
      Console.WriteLine("StringBuilder の最大容量 = " + strBuilder.MaxCapacity);
   }
}

実行結果

StringBuilder の容量 = 16
StringBuilder の長さ = 3
StringBuilder の最大容量 = 2147483647

各プロパティの意味まとめ

  • Length(長さ):現在 StringBuilder に実際に格納されている文字数。「Amy」は3文字なので 3 となります。
  • Capacity(容量):再割り当てなしで格納できる文字数。既定では 16 から始まり、文字数が増えると自動的に拡張されます。
  • MaxCapacity(最大容量):このインスタンスが保持できる文字数の上限。既定では int 型の最大値である 2147483647 です。

なお、StringBuilder のコンストラクタで容量と最大容量の両方を指定することも可能です。その場合、MaxCapacity には指定した値が反映されます。大量の文字列操作を行う際にメモリ使用量を制御したい場合は、これらのプロパティを活用するとよいでしょう。

  1. パソコンの最大RAM容量を確認する方法【Windows・Mac・Linux対応】

    新しいデスクトップPCやノートPCを購入する際、まずは低価格モデルを選んでおき、後からRAMを最大容量まで増設する方がコストを抑えられるケースが多くあります。では、あなたのパソコンは一体どれくらいのRAMを搭載できるのでしょうか?すでに最大容量に達しているのか、それともまだ増設の余地があるのか。このガイドでは、現在搭載されているRAMの容量と、パソコンがサポートする最大RAM容量を簡単に確認する方法をわかりやすく解説します。 パソコンに搭載されているRAM容量を確認する方法 パソコンのRAM容量を調べるのはとても簡単です。Windows 10の場合、キーボードショートカット Win +

  2. Windows 11でIPアドレスを確認する方法|コマンドプロンプトと設定アプリの手順

    インターネット接続に不具合が生じたとき、さまざまな対処法を試す中で、自分のPCのIPアドレスを把握しておくと意外と役立ちます。 IPアドレス(Internet Protocol Address)とは、インターネット上でデバイスを識別するための一意な数値アドレスのことです。機械にとっての「郵便番号」と考えると分かりやすいでしょう。現実世界で郵便番号が住所を特定するように、IPアドレスはコンピューターの場所を示し、デバイス同士がお互いを見つけて通信できるようにしています。 Windows 11でIPアドレスを確認する方法は複数あります。まずは最もシンプルな方法である「コマンドプロンプト」を使う