C#のStack.Push()メソッドとは?使い方とサンプルコードを解説
C#における Stack.Push() メソッドは、Stack(スタック)クラスの最上位に新しい要素(オブジェクト)を挿入するために使われるメソッドです。スタックは LIFO(Last In First Out:後入れ先出し)という仕組みで動作するため、最後に Push した要素が最初に取り出されます。本記事では、Push() メソッドの基本構文から、数値・文字列を扱った具体的なサンプルコードまでわかりやすく解説します。
構文
Stack.Push() メソッドの構文は以下のとおりです。
public virtual void Push(object ob);
引数 ob には、スタックに追加したいオブジェクトを指定します。戻り値はありません。なお、非ジェネリック版の Stack クラスは object 型を受け取るため、任意の型の値を格納できます。
サンプルコード①:数値を Push する場合
まず、整数値をスタックに追加する基本的な使用例を見てみましょう。
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);
// 要素をさらに追加
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 stack2 = (Stack)stack.Clone();
Console.WriteLine("\n複製したスタックの要素...");
foreach(int val in stack2) {
Console.WriteLine(val);
}
Console.Write("複製したスタックの要素数 = " + stack2.Count);
}
}実行結果
スタックの要素... 2500 2000 1500 1250 1000 750 500 300 150 要素数 = 9 更新後のスタックの要素... 4000 3500 3000 2500 2000 1500 1250 1000 750 500 300 150 更新後の要素数 = 12 複製したスタックの要素... 4000 3500 3000 2500 2000 1500 1250 1000 750 500 300 150 複製したスタックの要素数 = 12
出力結果から分かるように、後から Push した要素ほど先頭(Top)に表示されます。これはスタックの LIFO 特性によるものです。また、Clone() メソッドを使用することで、元のスタックと同じ内容を持つ別のスタックを作成できます。
サンプルコード②:文字列を Push する場合
続いて、文字列をスタックに追加する例を見てみましょう。
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);
// 要素をさらに追加
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
この例では、Push で文字列を追加した後に Clear() メソッドを呼び出すことで、スタック内のすべての要素を削除しています。その結果、Count プロパティの値が 0 になっていることが確認できます。
まとめ
- Stack.Push() メソッドは、スタックの最上位に要素を追加するために使用する
- スタックは LIFO(後入れ先出し)方式のため、最後に追加した要素が最初に表示される
- 現在の要素数は Count プロパティで取得できる
- Clone() でスタックを複製でき、Clear() で全要素を一括削除できる
-
C#のStackクラスとは?使い方と基本操作をわかりやすく解説
C#のStackクラスは、要素を「後入れ先出し(LIFO:Last-In, First-Out)」の形式で管理するためのコレクションです。最後に追加した要素が最初に取り出されるという特性を持つため、履歴管理や元に戻す(Undo)処理など、特定の順序でデータを扱いたい場面で活用されます。 Stackの基本操作:Push と Pop Stackでは、要素を追加することを「プッシュ(Push)」、要素を取り出すことを「ポップ(Pop)」と呼びます。 Push:スタックの一番上に新しい要素を追加する Pop:スタックの一番上から要素を取り出して削除する Stackクラスの使用例 まず、Stackに
-
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); この