English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Queue هي نوع خاص من المجموعات، تخزن العناصر بطريقة FIFO (أولاً في، أولاً出去)، عكس مجموعة Stack <T>. تحتوي على العناصر بناءً على الترتيب الذي تم إضافته. تشمل C# مجموعة Queue<T> عامة ومجموعة Queue غير عامة. يُنصح باستخدام مجموعة Queue<T> العامة.
Queue<T> هي مجموعة FIFO (أولاً في، أولاً出去).
يوجد في مساحة الأسماء System.Collection.Generic.
يمكن ل Queue<T> أن يحتوي على عناصر من نوع معين. يقدم التحقق من النوع عند التجميع، ولا يتم التعبئة والتزويج لأنه عام.
يمكنك إضافة العناصر باستخدام طريقة Enqueue(). لا يمكن استخدام لغة التجميع (collection-initializer) لإنشاء الصف.
يمكنك استرجاع العناصر باستخدام طرق Dequeue() و Peek(). لا يدعم المعالج.
توضح الشريحة التالية مجموعة Queue:
يمكنك إنشاء جسم من نوع Queue<T> باستخدام معين لكائن النوع الذي يحتوي عليه Queue<T> من خلال تحديد المعلمة. يستخدم المثال التالي طريقة Enqueue () لإضافة عناصر إلى Queue<T>. يسمح مجموعة Queue بأن تكون null (للمعاملات) وأن تحتوي على قيم مكررة.
Queue<int> callerIds = new Queue<int>(); callerIds.Enqueue(1); callerIds.Enqueue(2); callerIds.Enqueue(3); callerIds.Enqueue(4); foreach(var id in callerIds) Console.Write(id); // يطبع 1234
صفة | استخدام |
---|---|
Count | يعيد عدد العناصر في الصف. |
طريقة | استخدام |
---|---|
Enqueue(T) | إضافة عنصر إلى الصف. |
Dequeue | استعادة عنصر من بداية الصف وإزالته. |
Peek(T) | استعادة العنصر الأول من الصف دون إزالته. |
Contains(T) | تحقق مما إذا كان العنصر موجودًا في الصف |
Clear() | إزالة جميع العناصر من الصف. |
تستخدم طرق Dequeue و Peek لاسترجاع العنصر الأول من مجموعة الصف. يزيل Dequeue العنصر الأول من الصف ويستعيدونه، لأنه يتم تخزين العناصر في الصف وفقًا لنظام FIFO. إذا تم استدعاء طريقة Dequeue في صف فارغ، فإنه يسبب استثناء InvalidOperation. لذلك، تأكد دائمًا من أن عدد العناصر الإجمالي أكبر من صفر قبل استدعاء الصف.
Queue<string> strQ = new Queue<string>(); strQ.Enqueue("H"); strQ.Enqueue("e"); strQ.Enqueue("l"); strQ.Enqueue("l"); strQ.Enqueue("o"); Console.WriteLine("عدد العناصر الإجمالي: {0}", strQ.Count); // يُطبع 5 while (strQ.Count > 0){ Console.WriteLine(strQ.Dequeue()); // يُطبع Hello } Console.WriteLine("عدد العناصر الإجمالي: {0}", strQ.Count); // يُطبع 0
يستعيد طريقة Peek() العنصر الأول من مجموعة الصف دون إزالته من الصف. إذا تم استدعاء هذه الطريقة في صف فارغ، فإنه يسبب استثناء InvalidOperationException في الوقت التشغيل.
Queue<string> strQ = new Queue<string>(); strQ.Enqueue("H"); strQ.Enqueue("e"); strQ.Enqueue("l"); strQ.Enqueue("l"); strQ.Enqueue("o"); Console.WriteLine("عدد العناصر الإجمالي: {0}", strQ.Count); // يُطبع 5 if(strQ.Count > 0){ Console.WriteLine(strQ.Peek()); // يُطبع H Console.WriteLine(strQ.Peek()); // يُطبع H } Console.WriteLine("عدد العناصر الإجمالي: {0}", strQ.Count); // يُطبع 0
يحقق الطريقة Contains() ما إذا كان هناك عنصر في الصف. إذا كان العنصر المحدد موجودًا، فإنه يعود بـ true، وإلا يعود بـ false.
Contains() اسم:
bool Contains(object obj);
Queue<int> callerIds = new Queue<int>(); callerIds.Enqueue(1); callerIds.Enqueue(2); callerIds.Enqueue(3); callerIds.Enqueue(4); callerIds.Contains(2); //true callerIds.Contains(10); //false