บทความนี้สาธิตวิธีตรวจสอบว่า Stack<T> มีสมาชิก (element) ที่ระบุอยู่หรือไม่ โดยใช้เมธอด Contains() ใน C#
ตัวอย่างที่ 1: ตรวจสอบสมาชิกใน Stack ของจำนวนเต็ม
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Stack<int> stack = new Stack<int>();
stack.Push(100);
stack.Push(150);
stack.Push(175);
stack.Push(200);
stack.Push(225);
stack.Push(250);
stack.Push(300);
stack.Push(400);
stack.Push(450);
stack.Push(500);
Console.WriteLine("Elements in the Stack:");
foreach (var val in stack)
{
Console.WriteLine(val);
}
Console.WriteLine("Count of elements in the Stack = " + stack.Count);
Console.WriteLine("Does Stack has the element 400? = " + stack.Contains(400));
}
}
ผลลัพธ์
Elements in the Stack: 500 450 400 300 250 225 200 175 150 100 Count of elements in the Stack = 10 Does Stack has the element 400? = True
ตัวอย่างที่ 2: ตรวจสอบสมาชิกใน Stack ของสตริง (ไม่พบ)
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Stack<string> stack = new Stack<string>();
stack.Push("Steve");
stack.Push("Gary");
stack.Push("Stephen");
stack.Push("Nathan");
stack.Push("Katie");
stack.Push("Andy");
stack.Push("David");
stack.Push("Amy");
Console.WriteLine("Elements in the Stack:");
foreach (var val in stack)
{
Console.WriteLine(val);
}
Console.WriteLine("Count of elements in the Stack = " + stack.Count);
Console.WriteLine("Does Stack has the element Michael? = " + stack.Contains("Michael"));
}
}
ผลลัพธ์
Elements in the Stack: Amy David Andy Katie Nathan Stephen Gary Steve Count of elements in the Stack = 8 Does Stack has the element Michael? = False
สรุป
- ใช้
Contains(T item)เพื่อตรวจสอบว่ามีสมาชิกอยู่ใน Stack หรือไม่ — คืนค่าbool - Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last In, First Out) — สมาชิกที่เพิ่มล่าสุดจะอยู่ด้านบน (top)
- การวนลูป
foreachจะแสดงข้อมูลจาก top ไป bottom (LIFO order) - เมธอด
Contains()ทำการค้นหาแบบ linear search — Complexity คือ O(n) - คุณสมบัติ
Countคืนจำนวนสมาชิกใน Stack