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

【C#入門】Stack.Countプロパティの使い方を徹底解説!要素数の取得方法を実例付きで紹介

C#におけるStack.Countプロパティは、Stack(スタック)コレクションに現在格納されている要素の数を取得するために使用されるプロパティです。読み取り専用(get のみ)で定義されており、スタックのサイズに関わらず高速(O(1))に要素数を取得できるのが特徴です。

構文

Stack.Countプロパティの構文は以下のとおりです。

public virtual int Count { get; }

getアクセサのみを持つため、値の参照はできますが、外部から直接代入して変更することはできません。戻り値はint型で、スタック内の要素数を返します。

使用例1:文字列を格納したStackの場合

まずは、文字列をPushメソッドで追加し、Countプロパティで要素数を確認する基本的な例を見てみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Stack stack = new Stack();
      stack.Push("Inspiron");
      stack.Push("Alienware");
      stack.Push("Projectors");
      stack.Push("Monitors");
      stack.Push("XPS");
      stack.Push("Laptop");
      stack.Push("Notebook");

      Console.WriteLine("スタックの要素...");
      foreach(string val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("要素数 = " + stack.Count);

      // 要素をさらに3つ追加
      stack.Push("Ultrabook");
      stack.Push("Cameras");
      stack.Push("Keyboards");

      Console.WriteLine("\nスタックの要素...更新後");
      foreach(string val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("\n要素数(更新後) = " + stack.Count);

      // すべての要素を削除
      stack.Clear();
      Console.Write("要素数(Clear後) = " + stack.Count);
   }
}

出力結果

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

スタックの要素...
Notebook
Laptop
XPS
Monitors
Projectors
Alienware
Inspiron
要素数 = 7
スタックの要素...更新後
Keyboards
Cameras
Ultrabook
Notebook
Laptop
XPS
Monitors
Projectors
Alienware
Inspiron
要素数(更新後) = 10
要素数(Clear後) = 0

ポイント解説

  • 初期状態では7つの要素が登録されており、Count = 7 が返されています。
  • Pushメソッドで3つの要素を追加すると、Count = 10 に更新されます。
  • Clearメソッドですべての要素を削除すると、Count = 0 になります。

使用例2:数値を格納したStackの場合

続いて、int型の数値を格納したStackでの動作を確認してみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Stack stack = new Stack();
      stack.Push(150);
      stack.Push(300);
      stack.Push(500);
      stack.Push(750);
      stack.Push(1000);
      stack.Push(1250);
      stack.Push(1500);
      stack.Push(2000);
      stack.Push(2500);

      Console.WriteLine("スタックの要素...");
      foreach(int val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("要素数 = " + stack.Count);

      // 要素をさらに3つ追加
      stack.Push(3000);
      stack.Push(3500);
      stack.Push(4000);

      Console.WriteLine("\nスタックの要素...更新後");
      foreach(int val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("\n要素数(更新後) = " + stack.Count);

      // すべての要素を削除
      stack.Clear();
      Console.Write("要素数(Clear後) = " + stack.Count);
   }
}

出力結果

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

スタックの要素...
2500
2000
1500
1250
1000
750
500
300
150
要素数 = 9
スタックの要素...更新後
4000
3500
3000
2500
2000
1500
1250
1000
750
500
300
150
要素数(更新後) = 12
要素数(Clear後) = 0

まとめ

Stack.Countプロパティを使えば、スタック内の現在の要素数を簡単に取得できます。PushやPopによる要素の追加・削除に応じて自動的に値が変化し、Clearメソッドの呼び出し後には0になります。ループ処理の条件判定や、スタックが空かどうかのチェックなどにも活用できるので、ぜひ覚えておきましょう。

  1. C#のStackクラスを徹底解説!PushとPopの使い方とサンプルコード

    C#のStackクラスは、LIFO(Last-In, First-Out:後入れ先出し)方式でオブジェクトを管理するコレクションです。最後に追加した要素から順に取り出したい場合に活用されます。 Stackクラスには、以下のような便利なプロパティが用意されています。 Count … スタック内に格納されている要素数を取得します。 Push操作:スタックへの要素追加 Pushメソッドを使うと、スタックの先頭(一番上)に新しい要素を追加できます。 Stack st = new Stack(); st.Push(A); st.Push(B); st.Push(C); st.Push(D); この

  2. C#のStackクラスでCountプロパティを使って要素数を取得する方法

    C#のStackクラスに追加された要素の数を確認したい場合には、Countプロパティを使用します。Countプロパティは、スタック内に現在格納されている要素の総数をint型の整数として返します。 StackクラスのCountプロパティとは StackはLIFO(Last In First Out:後入れ先出し)方式のコレクションであり、Pushメソッドで要素を追加し、Popメソッドで要素を取り出します。Countプロパティを参照することで、その時点でスタックにいくつの要素が存在するかを簡単に把握できます。 なお、Countプロパティの取得はO(1)の計算量で行われるため、要素数が多くても高速に