คิว 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# นี้ เราจะดูว่าคิวถูกสร้างขึ้นอย่างไร ต่อไป เราจะดูวิธีการแสดงองค์ประกอบของคิว และใช้วิธีการนับและบรรจุ
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(); } } }
คำอธิบายรหัส
- ขั้นตอนแรกใช้ในการประกาศคิว ที่นี่เรากำลังประกาศ qt เป็นตัวแปรเพื่อเก็บองค์ประกอบของคิวของเรา
- ต่อไป เราจะเพิ่ม 3 องค์ประกอบในคิวของเรา แต่ละองค์ประกอบจะถูกเพิ่มผ่านวิธี "เข้าคิว"
- ตอนนี้สิ่งหนึ่งที่ต้องสังเกตเกี่ยวกับ Queues ก็คือองค์ประกอบไม่สามารถเข้าถึงได้ผ่านตำแหน่งดัชนีเช่น รายการอาร์เรย์- เราจำเป็นต้องใช้แนวทางอื่นในการแสดงองค์ประกอบของคิว ต่อไปนี้คือวิธีที่เราแสดงองค์ประกอบของคิว
- ก่อนอื่นเราจะประกาศตัวแปรชั่วคราวที่เรียกว่า obj สิ่งนี้จะถูกใช้เพื่อเก็บแต่ละองค์ประกอบของคิว
- จากนั้นเราใช้คำสั่ง foreach เพื่อผ่านแต่ละองค์ประกอบของคิว
- สำหรับแต่ละองค์ประกอบ Queue ค่าจะถูกกำหนดให้กับตัวแปร obj
- จากนั้นเราใช้คำสั่ง Console.Writeline เพื่อแสดงค่าไปยังคอนโซล
- เราใช้คุณสมบัติ "นับ" เพื่อรับจำนวนรายการในคิว คุณสมบัตินี้จะส่งคืนตัวเลข จากนั้นเราจะแสดงค่านี้ไปยังคอนโซล
- จากนั้นเราใช้วิธี "มี" เพื่อดูว่ามีค่า 3 อยู่ในคิวของเราหรือไม่ สิ่งนี้จะส่งกลับค่าจริงหรือเท็จ จากนั้นเราจะแสดงค่าที่ส่งคืนนี้ไปยังคอนโซล
หากป้อนโค้ดด้านบนอย่างถูกต้องแล้วและรันโปรแกรมจะแสดงผลลัพธ์ต่อไปนี้
เอาท์พุต
จากผลลัพธ์ เราจะเห็นได้ชัดเจนว่ามีการแสดงองค์ประกอบของคิว โปรดทราบว่า แตกต่างจาก “กองใน "คิว" องค์ประกอบแรกที่ส่งเข้าไปในคิวจะแสดงขึ้นก่อน จำนวนองค์ประกอบของคิวจะแสดงในผลลัพธ์ด้วย นอกจากนี้ ค่า True จะแสดงขึ้นเพื่อบอกว่าค่า 3 ถูกกำหนดไว้ในคิวแล้ว
C# คิว 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(); } } }
คำอธิบายรหัส
- ที่นี่เราเพิ่งออกวิธีการ "dequeue" ซึ่งใช้ในการลบองค์ประกอบออกจากคิว วิธีนี้จะลบองค์ประกอบแรกของคิว
หากป้อนโค้ดด้านบนอย่างถูกต้องแล้วและรันโปรแกรมจะแสดงผลลัพธ์ต่อไปนี้
Output:
จากผลลัพธ์ เราจะเห็นว่าองค์ประกอบแรกที่ถูกเพิ่มเข้าไปในคิว ซึ่งเป็นองค์ประกอบที่ 1 ได้ถูกลบออกจากคิวแล้ว
สรุป
คิวมีพื้นฐานมาจากแนวคิดเข้าก่อนออกก่อน การดำเนินการเพิ่มองค์ประกอบเข้าคิวเรียกว่าการดำเนินการเข้าคิว การดำเนินการลบองค์ประกอบออกจากคิวเรียกว่าการดำเนินการเอาคิวออก