ูู ุงูู
ูุงู ุฏูุ ููุชููู
ุนู Queueุ ููู ูุงุญุฏ ู
ู ุงูู Non-Generic Collections ุงูู
ูู
ุฉ ูู C# ูุงููู ุจูู
ุซู ู
ุจุฏุฃ First-In, First-Out (FIFO).
ุงูู Queue ู
ูุฌูุฏ ูู System.Collectionsุ ูุจูุณุชุฎุฏู
ู ูู
ุง ูููู ู
ุญุชุงุฌูู ููุตู ููุนูุงุตุฑ ุจููุณ ุงูุชุฑุชูุจ ุงููู ุฏุฎูุช ุจูู.
What is Queue and How Does it Work?
ุงูู Queue ูู collection ุจูุดุชุบู ุจู
ุจุฏุฃ FIFOุ ูุนูู โุฃูู ูุงุญุฏ ุฏุฎู ูู ุฃูู ูุงุญุฏ ูุฎุฑุฌโ.
ุฃุญุณู ู ุซุงู ุนุดุงู ูููู ุงูู ุจุฏุฃ ุฏู ูู ุทุงุจูุฑ ุงููุงุณ ุงููู ูุงูููู ุนุดุงู ููุทุนูุง ุชุฐุงูุฑ ุณููู ุง. ุฃูู ุดุฎุต ุจูุฏุฎู ุงูุทุงุจูุฑ ูู ุฃูู ุดุฎุต ุจููุตู ููุดุจุงู ูุจูุงุฎุฏ ุงูุชุฐูุฑุฉ.
ูู C#ุ ุงูู Queue ุจูุดุชุบู ุจููุณ ุงูุทุฑููุฉ. ุงูุนูุงุตุฑ ุจุชุฏุฎู ุงูุทุงุจูุฑ ู
ู ููุงูุชูุ ูุจุชุฎุฑุฌ ู
ู ุจุฏุงูุชู. ุงูุนู
ููุงุช ุงูุฃุณุงุณูุฉ ูููุง ุฃุณู
ุงุก ุฎุงุตุฉ:
- ุงูู Enqueue: ุฏู ุนู
ููุฉ ุฅุถุงูุฉ ุนูุตุฑ ุฌุฏูุฏ ูู ุขุฎุฑ ุงูู
Queue. - ุงูู Dequeue: ุฏู ุนู
ููุฉ ุฅุฒุงูุฉ ุงูุนูุตุฑ ุงููู ู
ูุฌูุฏ ูู ุฃูู ุงูู
Queue.
graph TD subgraph Queue Flow direction LR Input --> A[Enqueue]; A --> B{Queue}; B --> C[Dequeue]; C --> Output; end

ู
ูุญูุธุฉ: ุฒู ุงูู Stackุ ููู ูุณุฎุชูู ู
ู Queue ูู C#. ูุงุญุฏุฉ Non-Generic ูู System.Collections (ุงููู ุจูุชููู
ุนููุง ููุง)ุ ููุงุญุฏุฉ Generic ู type-safe ุงุณู
ูุง Queue<T> ูู System.Collections.Generic.
Characteristics of Queue
- ุงูู
Enqueue()ุจุชุถูู ุนูุตุฑ ูู ุขุฎุฑ ุงููQueue. - ุงูู
Dequeue()ุจุชุญุฐู ุฃูุฏู ุนูุตุฑ (ุงููู ูู ุฃูู ุงููQueue). - ุงูู
Peek()ุจุชุฑุฌุน ุฃูุฏู ุนูุตุฑ ู ู ุบูุฑ ู ุง ุชุญุฐูู. - ุงูู
Capacityุจุชุงุนุชู ุจุชุฒูุฏ ุชููุงุฆููุง ูู ุง ุจูุถูู ุนูุงุตุฑ. - ุจููุจู ููู
nullูููู ู ูุฑุฑุฉ.
Creating a Queue
ุฃูู ุญุงุฌุฉุ ูุงุฒู
ูุนู
ู using System.Collections;. ุจุนุฏูู ุจููุดุฆ instance ู
ู ุงูู Queue.
// Create an empty queue with default capacity
Queue queue = new Queue();ููู ุทุฑู ุชุงููุฉ ููุฅูุดุงุกุ ุฒู ุฅูู ุชุญุฏุฏ ุงูู capacity ุงูุฃูููุฉุ ุฃู ุชูุดุฆู ู
ู collection ุชุงููุฉ.
Adding Elements (Enqueue)
ุนุดุงู ูุถูู ุนูุงุตุฑ ููู Queueุ ุจูุณุชุฎุฏู
ุงูู method ุงููู ุงุณู
ูุง Enqueue(). ุงูู method ุฏู ุจุชุถูู ุงูุนูุตุฑ ูู ุขุฎุฑ ุงูู Queue.
// Create a queue collection
Queue queue = new Queue();
// Add items to the queue using the Enqueue() method
queue.Enqueue(101);
queue.Enqueue("Hello");
queue.Enqueue(3.14f);
queue.Enqueue(true);
queue.Enqueue(67.8);
queue.Enqueue('A');
// Printing the queue items using a foreach loop
// The loop starts from the first element added
foreach (var item in queue)
{
Console.WriteLine(item);
}ุงูู Queue ูู Non-Generic collection ุจููุจู ุฃู ููุน ุจูุงูุงุช.
Removing Elements
Dequeue() vs. Clear()
- ุงูู
Dequeue(): ุฏู ุงููmethodุงูุฃุณุงุณูุฉ ุงููู ุจุชุญุฐู ุงูุนูุตุฑ ุงููู ูู ุฃูู ุงููQueueูุจุชุฑุฌุนูููู. ูู ุงููQueueูุงุถู ูุญุงููุช ุชุนู ูDequeue()ุ ููุญุตูInvalidOperationException. - ุงูู
Clear(): ุจุชุญุฐู ูู ุงูุนูุงุตุฑ ุงููู ูู ุงููQueueู ุฑุฉ ูุงุญุฏุฉ.
Console.WriteLine($"All Queue Elements: Count {queue.Count}");
foreach (var item in queue)
{
Console.Write($"{item} ");
}
// Remove and return an item from the queue using the Dequeue() method
Console.WriteLine($"\n\nDeleted Element: {queue.Dequeue()}"); // The first element (101) is removed
Console.WriteLine($"\nAll Queue Elements After Deletion: Count {queue.Count}");
foreach (var item in queue)
{
Console.Write($"{item} ");
}
// Clear all elements
queue.Clear();
Console.WriteLine($"\n\nQueue Elements After Clear Operation: Count {queue.Count}"); // Count will be 0Getting the First Element
ุฅุฒุงู ุชุดูู ุงูุนูุตุฑ ุงููู ูู ุฃูู ุงูุทุงุจูุฑ ู
ู ุบูุฑ ู
ุง ุชุญุฐููุ ููุง ุจูุฌู ุงููุฑู ุจูู Dequeue() ู Peek().
Dequeue() vs. Peek()
- ุงูู
Dequeue(): ุจุชุญุฐู ุงูุนูุตุฑ ุงููู ูู ุฃูู ุงููQueueูุจุชุฑุฌุนู. - ุงูู
Peek(): ุจุชุฑุฌุน ุงูุนูุตุฑ ุงููู ูู ุฃูู ุงููQueueู ู ุบูุฑ ู ุง ุชุญุฐูู.
ูู ุงูู Queue ูุงุถูุ ุงูุงุชููู ุจูุฑู
ูุง InvalidOperationException.
Console.WriteLine($"Total Elements present in Queue: {queue.Count}"); // e.g., 6
// Using Dequeue()
Console.WriteLine($"First Element of Queue is {queue.Dequeue()}"); // Returns 101 and removes it
Console.WriteLine($"Total Elements present in Queue: {queue.Count}"); // Now 5
// Using Peek()
Console.WriteLine($"First Element of Queue is {queue.Peek()}"); // Returns "Hello" but doesn't remove it
Console.WriteLine($"Total Elements present in Queue: {queue.Count}"); // Still 5Checking for an Element
ุนุดุงู ุชุชุฃูุฏ ุฅุฐุง ูุงู ููู ุนูุตุฑ ู
ุนูู ู
ูุฌูุฏ ูู ุงูู Queue ุฃู ูุฃุ ุจูุณุชุฎุฏู
Contains(object).
if (queue.Contains("Hello"))
{
Console.WriteLine("Element 'Hello' is found");
}
else
{
Console.WriteLine("Element 'Hello' is not found");
}ู
ูุญูุธุฉ ุฃุฏุงุก: ุงูู Contains() ุจุชุงุฎุฏ ููุช O(n)ุ ูุนูู ุจุชูู ุนูู ูู ุงูุนูุงุตุฑ ุนุดุงู ุชูุงูู ุงูุนูุตุฑ ุงูู
ุทููุจุ ูู
ู
ูู ุชููู ุจุทูุฆุฉ ูู ุงูู Queue ูุจูุฑ ุฌุฏูุง.
Other Useful Methods and Properties
- ุงูู
Clone(): ุจุชุนู ูshallow copyู ู ุงููQueue. - ุงูู
CopyTo(array, index): ุจุชูุณุฎ ุนูุงุตุฑ ุงููQueueููarrayุนุงุฏูุฉุ ุจููุณ ุงูุชุฑุชูุจ (ู ู ุงูุฃูู ููุขุฎุฑ).
Properties
- ุงูู
Count: ุจุชุฑุฌุน ุนุฏุฏ ุงูุนูุงุตุฑ ุงูุญุงููุฉ ูู ุงููQueue. - ุงูู
IsSynchronized: ุจุชุนุฑูู ุฅุฐุง ูุงู ุงููQueueุฏูthread-safe. - ุงูู
SyncRoot: ุจุชุฑุฌุนobjectู ู ูู ูุณุชุฎุฏู ู ุนุดุงู ูุนู ูsynchronizationูุฏูู.
ูุตูุญุฉ: ุฒู ุจุงูู ุงูู Non-Generic Collectionsุ ูููุถู ุงุณุชุฎุฏุงู
ุงููุณุฎุฉ ุงูู Generic ููู Queue<T> ูู ุงูุฃููุงุฏ ุงูุญุฏูุซุฉ ุนุดุงู ุชุณุชููุฏ ู
ู ุงูู type safety ูุงูุฃุฏุงุก ุงูุฃูุถู.