C# Stack完全ガイド:Push、Pop、LIFO操作の実例解説
C#におけるStackとは
スタックは後入れ先出し(LIFO:Last-In, First-Out)原則に従うコレクションです。本の山を想像してください:一番上の本だけを取り出せます。同じロジックが.NET Stackクラスに適用され、要素はPushで上に追加され、Popで上から取り除かれます。
Stackの宣言
newキーワードでスタックをインスタンス化し、変数に割り当てます。
Stack st = new Stack();
要素の追加 - Push
Pushメソッドは新しい要素をスタックの上に配置します。
st.Push(1);
要素の削除 - Pop
Popメソッドは最上部の要素を削除して返却します。
var top = st.Pop();
その他の一般的操作
- Count - スタック内のアイテム数を取得。
int total = st.Count;
- Contains - 特定値の存在をチェック。
bool hasThree = st.Contains(3);
実践例1:Push、Count、Containsの使用
以下はスタック作成、要素挿入、列挙、基本クエリをデモンストレートするコンソールアプリケーションです。

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
// 1. 新しいスタックを作成
Stack st = new Stack();
// 2. 3つの整数をスタックにプッシュ
st.Push(1);
st.Push(2);
st.Push(3);
// 3. スタックを列挙 - LIFO順に注意
foreach (Object obj in st) {
Console.WriteLine(obj);
}
// 4. 総数を出力
Console.WriteLine($"\nNumber of elements: {st.Count}");
// 5. スタックに値3が含まれるかチェック
Console.WriteLine($"Does stack contain 3? {st.Contains(3)}");
Console.ReadKey();
}
}
}
解説
Stack型のstを宣言。- 3つの整数をプッシュ;最後にプッシュされた(3)が最上部要素になる。
foreachでスタックを上から下へ列挙し、3、2、1の順で表示。Countが3を返し、3アイテムあることを確認。Contains(3)がtrueを返し、3が存在することを証明。
プログラム実行結果:

実践例2:Popで最上部要素を削除
Popメソッドの動作を簡潔に示します。

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
Stack st = new Stack();
st.Push(1);
st.Push(2);
st.Push(3);
// 最上部要素(3)を削除
st.Pop();
foreach (Object obj in st) {
Console.WriteLine(obj);
}
Console.ReadKey();
}
}
}
解説
- 1、2、3をプッシュ後、スタックのトップは3。
Pop()呼び出しで3を削除、2と1が残る。- 列挙で2、次に1を出力。
プログラム出力:

重要なポイント
StackはLIFOで動作。Pushで追加、Popで最上部要素を削除。- 補助機能:サイズ取得の
Count、メンバーシップチェックのContains。
C言語
- C# の式、文、ブロック:実践例で徹底理解
- C++ do-while文:構文、実践例、ネストしたループ
- C++ポインタをマスター:概念、例、実践的応用
- C++ char型をマスター:宣言、ASCII、変換テクニック
- C++演算子オーバーロード:コード例付き実践ガイド
- C++関数を実例で徹底解説:基本から応用まで
- C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
- Python str.count()マスター:文字と部分文字列のカウント実例集
- Python round()関数を実例で徹底解説
- Python map()関数をマスター:構文、例、ベストプラクティス
- Python timeit():実行時間測定の実例付きガイド