Queue Sınıf

Tanım

Nesnelerin ilk gelen, ilk çıkan koleksiyonunu temsil eder.

public ref class Queue : System::Collections::ICollection
public ref class Queue : ICloneable, System::Collections::ICollection
public class Queue : System.Collections.ICollection
public class Queue : ICloneable, System.Collections.ICollection
[System.Serializable]
public class Queue : ICloneable, System.Collections.ICollection
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Queue : ICloneable, System.Collections.ICollection
type Queue = class
    interface ICollection
    interface IEnumerable
type Queue = class
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
type Queue = class
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Queue = class
    interface ICollection
    interface IEnumerable
    interface ICloneable
Public Class Queue
Implements ICollection
Public Class Queue
Implements ICloneable, ICollection
Devralma
Queue
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnekte, 'a değerlerin Queue nasıl oluşturulacağı ve ekleneceği ve değerlerinin nasıl yazdırılacağını gösterilmektedir.

 using System;
 using System.Collections;
 public class SamplesQueue  {

    public static void Main()  {

       // Creates and initializes a new Queue.
       Queue myQ = new Queue();
       myQ.Enqueue("Hello");
       myQ.Enqueue("World");
       myQ.Enqueue("!");

       // Displays the properties and values of the Queue.
       Console.WriteLine( "myQ" );
       Console.WriteLine( "\tCount:    {0}", myQ.Count );
       Console.Write( "\tValues:" );
       PrintValues( myQ );
    }

    public static void PrintValues( IEnumerable myCollection )  {
       foreach ( Object obj in myCollection )
          Console.Write( "    {0}", obj );
       Console.WriteLine();
    }
 }
 /*
 This code produces the following output.

 myQ
     Count:    3
     Values:    Hello    World    !
*/
Imports System.Collections

Public Class SamplesQueue

    Public Shared Sub Main()

        ' Creates and initializes a new Queue.
        Dim myQ As New Queue()
        myQ.Enqueue("Hello")
        myQ.Enqueue("World")
        myQ.Enqueue("!")

        ' Displays the properties and values of the Queue.
        Console.WriteLine("myQ")
        Console.WriteLine("    Count:    {0}", myQ.Count)
        Console.Write("    Values:")
        PrintValues(myQ)

    End Sub

    Public Shared Sub PrintValues(myCollection As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myCollection
            Console.Write("    {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' myQ
'     Count:    3
'     Values:    Hello    World    !

Açıklamalar

Bu sınıf bir kuyruğu döngüsel dizi olarak uygular. içinde depolanan nesneler bir Queue uca eklenir ve diğerinden kaldırılır.

Important

Sınıfını yeni geliştirme için kullanmanızı Queue önermiyoruz. Bunun yerine genel Queue<T> sınıfı kullanmanızı öneririz. Daha fazla bilgi için bkz. GitHub'da genel olmayan koleksiyonlar kullanılmamalıdır .

Bilgi için geçici depolamaya ihtiyacınız olduğunda kuyruklar ve yığınlar yararlıdır; başka bir ifadeyle, değerini aldıktan sonra bir öğeyi atmak isteyebileceğiniz durumlarda. Bilgilere koleksiyonda depolandığı sırada erişmeniz gerekiyorsa kullanın Queue . Bilgilere ters sırada erişmeniz gerekiyorsa kullanın Stack . Koleksiyona aynı anda birden çok iş parçacığından erişmeniz gerekiyorsa veya ConcurrentQueue<T> kullanınConcurrentStack<T>.

ve Queue öğeleri üzerinde üç ana işlem gerçekleştirilebilir:

  • Enqueue öğesini sonuna Queueekler.

  • Dequeue en eski öğeyi öğesinin Queuebaşından kaldırır.

  • Peek öğesinin başındaki en eski öğeyi Queue döndürür, ancak öğesinden Queuekaldırmaz.

'nin Queue kapasitesi, barındırabileceği öğelerin Queue sayısıdır. öğesine öğeler eklendikçe Queuekapasite, yeniden ayırma aracılığıyla gerektiği gibi otomatik olarak artırılır. çağrılarak TrimToSizekapasite azaltılabilir.

Büyüme faktörü, daha büyük bir kapasite gerektiğinde geçerli kapasitenin çarpıldığı sayıdır. Büyüme faktörü, oluşturulduğunda belirlenir Queue . Varsayılan büyüme faktörü 2.0'dır. 'nin Queue kapasitesi, büyüme faktöründen bağımsız olarak her zaman en az dört artacaktır. Örneğin, büyüme faktörü 1,0 olan bir Queue , daha büyük bir kapasite gerektiğinde kapasitede her zaman dört artacaktır.

Queue geçerli bir değer olarak kabul eder null ve yinelenen öğelere izin verir.

Bu koleksiyonun genel sürümü için bkz. System.Collections.Generic.Queue<T>

Oluşturucular

Name Description
Queue()

Sınıfın Queue boş, varsayılan başlangıç kapasitesine sahip yeni bir örneğini başlatır ve varsayılan büyüme faktörünü kullanır.

Queue(ICollection)

Sınıfın Queue , belirtilen koleksiyondan kopyalanan öğeleri içeren yeni bir örneğini başlatır, kopyalanan öğe sayısıyla aynı başlangıç kapasitesine sahiptir ve varsayılan büyüme faktörünü kullanır.

Queue(Int32, Single)

Sınıfın Queue boş, belirtilen ilk kapasiteye sahip yeni bir örneğini başlatır ve belirtilen büyüme faktörünü kullanır.

Queue(Int32)

Sınıfın Queue boş, belirtilen başlangıç kapasitesine sahip yeni bir örneğini başlatır ve varsayılan büyüme faktörünü kullanır.

Özellikler

Name Description
Count

içinde Queuebulunan öğe sayısını alır.

IsSynchronized

'a Queue erişimin eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli).

SyncRoot

Queueerişimini eşitlemek için kullanılabilecek bir nesnesi alır.

Yöntemler

Name Description
Clear()

içindeki tüm nesneleri Queuekaldırır.

Clone()

öğesinin sığ bir kopyasını Queueoluşturur.

Contains(Object)

Bir öğenin içinde Queueolup olmadığını belirler.

CopyTo(Array, Int32)

Queue Öğeleri, belirtilen dizi dizininden başlayarak var olan bir tek boyutlu Arrayöğesine kopyalar.

Dequeue()

öğesinin başındaki Queuenesnesini kaldırır ve döndürür.

Enqueue(Object)

sonuna bir nesne Queueekler.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetEnumerator()

aracılığıyla Queueyineleyen bir numaralandırıcı döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
Peek()

öğesinin başındaki Queue nesneyi kaldırmadan döndürür.

Synchronized(Queue)

Özgün kuyruğu sarmalayan ve iş parçacığı güvenli olan yeni Queue bir döndürür.

ToArray()

Queue Öğeleri yeni bir diziye kopyalar.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
TrimToSize()

Kapasiteyi içindeki gerçek öğe Queuesayısına ayarlar.

Uzantı Metotları

Name Description
AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerable öğesine IQueryabledönüştürür.

Cast<TResult>(IEnumerable)

öğesinin IEnumerable öğelerini belirtilen türe yazar.

OfType<TResult>(IEnumerable)

Belirtilen türe göre bir IEnumerable öğesinin öğelerini filtreler.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu türün genel statik (Shared Visual Basic'te) üyeleri iş parçacığı güvenlidir. Hiçbir örnek üyesi için iş parçacığı güvenliği garanti edilmez.

öğesinin iş parçacığı güvenliğini Queuegaranti etmek için tüm işlemlerin yöntemi tarafından Synchronized(Queue) döndürülen sarmalayıcı aracılığıyla yapılması gerekir.

Bir koleksiyonda numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.

Ayrıca bkz.