คิว C# พร้อมตัวอย่าง: คิว C# คืออะไรและใช้งานอย่างไร

คิวใน C # คืออะไร?

Queue เป็นคอลเลกชันกรณีพิเศษซึ่งแสดงถึงแนวคิดเข้าก่อนออกก่อน ลองนึกภาพผู้คนเข้าคิวรอรถบัส โดยปกติผู้ที่เข้าคิวเป็นคนแรกจะเป็นคนแรกที่ขึ้นรถบัส ในทำนองเดียวกันคนสุดท้ายที่เข้าคิวจะเป็นคนสุดท้ายที่ขึ้นรถบัส องค์ประกอบจะถูกเพิ่มลงในคิว โดยองค์ประกอบหนึ่งจะอยู่ด้านบนสุดของกันและกัน

กระบวนการเพิ่มองค์ประกอบเข้าในคิวคือการดำเนินการ enqueuer หากต้องการลบองค์ประกอบออกจากคิว คุณสามารถใช้การดำเนินการ dequeuer ได้ การดำเนินการใน Queues C# จะคล้ายกับสแต็กที่เราได้เห็นก่อนหน้านี้

มาดูวิธีการใช้ Queue ใน C# และการดำเนินการต่างๆ ที่ใช้ได้กับคอลเลกชัน Queue ใน C# อย่างละเอียดเพิ่มเติม

ประกาศคิว

การประกาศคิวมีดังต่อไปนี้ คิวถูกสร้างขึ้นด้วยความช่วยเหลือของประเภทข้อมูลคิว คำหลัก "ใหม่" ใช้เพื่อสร้างวัตถุของคิว จากนั้นวัตถุจะถูกกำหนดให้กับตัวแปร qt

Queue qt = new Queue()

การเพิ่มองค์ประกอบให้กับคิว

วิธีการจัดคิวใช้เพื่อเพิ่มองค์ประกอบลงในคิว ไวยากรณ์ทั่วไปของคำสั่งได้รับด้านล่าง

Queue.enqueue(element)

การลบองค์ประกอบออกจากคิว

วิธีการ dequeue ใช้เพื่อลบองค์ประกอบออกจากคิว การดำเนินการ dequeue จะส่งคืนองค์ประกอบแรกของคิว ไวยากรณ์ทั่วไปของคำสั่งมีดังต่อไปนี้

Queue.dequeue()

นับ

คุณสมบัตินี้ใช้เพื่อรับจำนวนรายการในคิว ด้านล่างนี้คือไวยากรณ์ทั่วไปของคำสั่งนี้

Queue.Count

ประกอบด้วย

วิธีการนี้ใช้เพื่อดูว่ามีองค์ประกอบอยู่ในคิวหรือไม่ ด้านล่างนี้คือไวยากรณ์ทั่วไปของคำสั่งนี้ คำสั่งจะคืนค่าเป็นจริงหากมีองค์ประกอบอยู่ มิฉะนั้นจะส่งคืนค่าเท็จ

Queue.Contains(element)

ตอนนี้เรามาดูการทำงานในระดับโค้ดกันดีกว่า โค้ดที่กล่าวถึงด้านล่างทั้งหมดจะถูกเขียนลงในแอปพลิเคชันคอนโซลของเรา

รหัสจะถูกเขียนลงในไฟล์ Program.cs ของเรา ในโปรแกรมด้านล่างเราจะเขียนโค้ดเพื่อดูว่าเราสามารถใช้วิธีการที่กล่าวมาข้างต้นได้อย่างไร

ตัวอย่าง

ในคิวในตัวอย่าง C# นี้ เราจะดูว่าคิวถูกสร้างขึ้นอย่างไร ต่อไป เราจะดูวิธีการแสดงองค์ประกอบของคิว และใช้วิธีการนับและบรรจุ

คิวใน C #
ตัวอย่างคิว C#
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Queue qt = new Queue();
   qt.Enqueue(1);
   qt.Enqueue(2);
   qt.Enqueue(3);

   foreach (Object obj in qt)
   {
    Console.WriteLine(obj);
   }
    Console.WriteLine(); Console.WriteLine();
    Console.WriteLine("The number of elements in the Queue " + qt.Count);
    Console.WriteLine("Does the Queue contain " + qt.Contains(3));
    Console.ReadKey();
   }
 }
}

คำอธิบายรหัส

  1. ขั้นตอนแรกใช้ในการประกาศคิว ที่นี่เรากำลังประกาศ qt เป็นตัวแปรเพื่อเก็บองค์ประกอบของคิวของเรา
  2. ต่อไป เราจะเพิ่ม 3 องค์ประกอบในคิวของเรา แต่ละองค์ประกอบจะถูกเพิ่มผ่านวิธี "เข้าคิว"
  3. ตอนนี้สิ่งหนึ่งที่ต้องสังเกตเกี่ยวกับ Queues ก็คือองค์ประกอบไม่สามารถเข้าถึงได้ผ่านตำแหน่งดัชนีเช่น รายการอาร์เรย์- เราจำเป็นต้องใช้แนวทางอื่นในการแสดงองค์ประกอบของคิว ต่อไปนี้คือวิธีที่เราแสดงองค์ประกอบของคิว
    • ก่อนอื่นเราจะประกาศตัวแปรชั่วคราวที่เรียกว่า obj สิ่งนี้จะถูกใช้เพื่อเก็บแต่ละองค์ประกอบของคิว
    • จากนั้นเราใช้คำสั่ง foreach เพื่อผ่านแต่ละองค์ประกอบของคิว
    • สำหรับแต่ละองค์ประกอบ Queue ค่าจะถูกกำหนดให้กับตัวแปร obj
    • จากนั้นเราใช้คำสั่ง Console.Writeline เพื่อแสดงค่าไปยังคอนโซล
  4. เราใช้คุณสมบัติ "นับ" เพื่อรับจำนวนรายการในคิว คุณสมบัตินี้จะส่งคืนตัวเลข จากนั้นเราจะแสดงค่านี้ไปยังคอนโซล
  5. จากนั้นเราใช้วิธี "มี" เพื่อดูว่ามีค่า 3 อยู่ในคิวของเราหรือไม่ สิ่งนี้จะส่งกลับค่าจริงหรือเท็จ จากนั้นเราจะแสดงค่าที่ส่งคืนนี้ไปยังคอนโซล

หากป้อนโค้ดด้านบนอย่างถูกต้องแล้วและรันโปรแกรมจะแสดงผลลัพธ์ต่อไปนี้

เอาท์พุต

คิวใน C #
ตัวอย่างคิว C#

จากผลลัพธ์ เราจะเห็นได้ชัดเจนว่ามีการแสดงองค์ประกอบของคิว โปรดทราบว่า แตกต่างจาก “กองใน "คิว" องค์ประกอบแรกที่ส่งเข้าไปในคิวจะแสดงขึ้นก่อน จำนวนองค์ประกอบของคิวจะแสดงในผลลัพธ์ด้วย นอกจากนี้ ค่า True จะแสดงขึ้นเพื่อบอกว่าค่า 3 ถูกกำหนดไว้ในคิวแล้ว

C# คิว Dequeue

ตอนนี้เรามาดูฟังก์ชันการลบออกกัน เราจะเห็นโค้ดที่จำเป็นในการลบองค์ประกอบสุดท้ายออกจากคิว

C# คิว Dequeue
ตัวอย่าง C# Queue Dequeue
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Queue qt = new Queue();
   qt.Enqueue(1);
   qt.Enqueue(2);
   qt.Enqueue(3);

   qt.Dequeue();

   foreach (Object obj in qt)
   {
    Console.WriteLine(obj);
   }
    Console.ReadKey();
   }
 }
}

คำอธิบายรหัส

  1. ที่นี่เราเพิ่งออกวิธีการ "dequeue" ซึ่งใช้ในการลบองค์ประกอบออกจากคิว วิธีนี้จะลบองค์ประกอบแรกของคิว

หากป้อนโค้ดด้านบนอย่างถูกต้องแล้วและรันโปรแกรมจะแสดงผลลัพธ์ต่อไปนี้

Output:

C# คิว Dequeue
ตัวอย่าง C# Queue Dequeue

จากผลลัพธ์ เราจะเห็นว่าองค์ประกอบแรกที่ถูกเพิ่มเข้าไปในคิว ซึ่งเป็นองค์ประกอบที่ 1 ได้ถูกลบออกจากคิวแล้ว

สรุป

คิวมีพื้นฐานมาจากแนวคิดเข้าก่อนออกก่อน การดำเนินการเพิ่มองค์ประกอบเข้าคิวเรียกว่าการดำเนินการเข้าคิว การดำเนินการลบองค์ประกอบออกจากคิวเรียกว่าการดำเนินการเอาคิวออก