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

C#でスタックからすべての要素を削除する方法 ― Clearメソッドの使い方

C#の Stack<T> に格納されたすべてのオブジェクト(要素)を一括で削除するには、Clear() メソッドを使用します。このメソッドを呼び出すと、スタック内の全要素が削除され、Count プロパティは 0 になります。

Clearメソッドの基本

Clear() は引数を取らず、戻り値もありません。スタックの内容を完全に空にしたい場合に最もシンプルで効率的な方法です。なお、容量(内部配列のサイズ)自体は変更されず、要素数だけがゼロになります。

サンプルコード1:文字列のスタックをクリアする

以下の例では、文字列型のスタックに8つの要素を追加し、その後 Clear() メソッドですべて削除しています。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      Stack<string> stack = new Stack<string>();
      stack.Push("A");
      stack.Push("B");
      stack.Push("C");
      stack.Push("D");
      stack.Push("E");
      stack.Push("F");
      stack.Push("G");
      stack.Push("H");

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

      // すべての要素を削除
      stack.Clear();

      Console.Write("更新後の要素数 = " + stack.Count);
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。スタックはLIFO(後入れ先出し)構造のため、最後に追加した「H」から順に表示されている点にも注目してください。

要素数 = 8
スタック内の要素...
H
G
F
E
D
C
B
A
更新後の要素数 = 0

サンプルコード2:整数のスタックをクリアする

次に、整数型(int)のスタックを使った別の例を見てみましょう。10個の数値を追加した後、Clear() で一括削除します。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      Stack<int> stack = new Stack<int>();
      stack.Push(10);
      stack.Push(20);
      stack.Push(30);
      stack.Push(40);
      stack.Push(50);
      stack.Push(60);
      stack.Push(70);
      stack.Push(80);
      stack.Push(90);
      stack.Push(100);

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

      // すべての要素を削除
      stack.Clear();

      Console.Write("更新後の要素数 = " + stack.Count);
   }
}

実行結果

実行すると以下のように出力されます。Clear() 呼び出し後、要素数が 0 になっていることが確認できます。

要素数 = 10
スタック内の要素...
100
90
80
70
60
50
40
30
20
10
更新後の要素数 = 0

まとめ

  • スタックの全要素を削除するには Stack<T> クラスの Clear() メソッドを使う。
  • Clear() 実行後、Count プロパティは 0 になる。
  • 要素を1つだけ取り出して削除したい場合は Pop() メソッドを使用する。
  • 削除せずに先頭の要素を確認したい場合は Peek() メソッドが便利。

このように、Clear() メソッドを使えば、ループ処理などを行わなくても1行でスタックの中身を空にできるため、コードの可読性とパフォーマンスの両面でメリットがあります。

  1. Windows 10のエクスプローラーから「3D オブジェクト」フォルダーを削除・復元する方法

    Windows 10をFall Creators Update以降へアップグレードすると、エクスプローラーに「3D オブジェクト」という新しいフォルダーが追加されます。このフォルダーは、定番のMSペイントを進化させた「Paint 3D」アプリの一部で、3Dコンテンツを作成するために用意されたものです。ただし、並び順の仕様上、エクスプローラーを開いたときに最初に表示されてしまうため、「使わないのに目立つのは邪魔」と感じるユーザーも少なくありません。Paint 3Dを使う予定がない場合は、レジストリを編集することでこのフォルダーを非表示にできます。 Windows 10で「3D オブジェクト」フ

  2. JavaでArrayListのすべての要素を削除する方法(clearメソッドの使い方)

    JavaのArrayListからすべての要素を一括で削除したい場合は、clear()メソッドを使用します。この記事では、実際のコード例を通じて、ArrayListの全要素を削除する手順をわかりやすく解説します。1. 要素を持つArrayListを作成するまず、複数の要素を格納したArrayListを用意しましょう。以下の例では、Integer型のArrayListに7つの数値を追加しています。ArrayList<Integer> arrlist = new ArrayList<Integer>(5); arrlist.add(25); arrlist.add(50);