BlockingCollection<T> Klass

Definition

Tillhandahåller funktioner för blockering och avgränsning för trådsäkra samlingar som implementerar IProducerConsumerCollection<T>.

generic <typename T>
public ref class BlockingCollection : IDisposable, System::Collections::Generic::IEnumerable<T>, System::Collections::Generic::IReadOnlyCollection<T>, System::Collections::ICollection
generic <typename T>
public ref class BlockingCollection : IDisposable, System::Collections::Generic::IEnumerable<T>, System::Collections::ICollection
public class BlockingCollection<T> : IDisposable, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.ICollection
[System.Runtime.InteropServices.ComVisible(false)]
public class BlockingCollection<T> : IDisposable, System.Collections.Generic.IEnumerable<T>, System.Collections.ICollection
[System.Runtime.InteropServices.ComVisible(false)]
public class BlockingCollection<T> : IDisposable, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.ICollection
public class BlockingCollection<T> : IDisposable, System.Collections.Generic.IEnumerable<T>, System.Collections.ICollection
type BlockingCollection<'T> = class
    interface seq<'T>
    interface IEnumerable
    interface IReadOnlyCollection<'T>
    interface ICollection
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(false)>]
type BlockingCollection<'T> = class
    interface seq<'T>
    interface ICollection
    interface IEnumerable
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(false)>]
type BlockingCollection<'T> = class
    interface seq<'T>
    interface IEnumerable
    interface ICollection
    interface IDisposable
    interface IReadOnlyCollection<'T>
type BlockingCollection<'T> = class
    interface seq<'T>
    interface ICollection
    interface IEnumerable
    interface IDisposable
Public Class BlockingCollection(Of T)
Implements ICollection, IDisposable, IEnumerable(Of T), IReadOnlyCollection(Of T)
Public Class BlockingCollection(Of T)
Implements ICollection, IDisposable, IEnumerable(Of T)

Typparametrar

T

Typ av element i samlingen.

Arv
BlockingCollection<T>
Attribut
Implementeringar

Exempel

I följande exempel visas hur du lägger till och tar objekt samtidigt från en blockerande samling:

using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;

class BlockingCollectionDemo
{
    static async Task Main()
    {
        await AddTakeDemo.BC_AddTakeCompleteAdding();
        TryTakeDemo.BC_TryTake();
        FromToAnyDemo.BC_FromToAny();
        await ConsumingEnumerableDemo.BC_GetConsumingEnumerable();
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
class AddTakeDemo
{
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.Take()
    //      BlockingCollection<T>.CompleteAdding()
    public static async Task BC_AddTakeCompleteAdding()
    {
        using (BlockingCollection<int> bc = new BlockingCollection<int>())
        {
            // Spin up a Task to populate the BlockingCollection
            Task t1 = Task.Run(() =>
            {
                bc.Add(1);
                bc.Add(2);
                bc.Add(3);
                bc.CompleteAdding();
            });

            // Spin up a Task to consume the BlockingCollection
            Task t2 = Task.Run(() =>
            {
                try
                {
                    // Consume the BlockingCollection
                    while (true) Console.WriteLine(bc.Take());
                }
                catch (InvalidOperationException)
                {
                    // An InvalidOperationException means that Take() was called on a completed collection
                    Console.WriteLine("That's All!");
                }
            });

            await Task.WhenAll(t1, t2);
        }
    }
}

class TryTakeDemo
{
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.CompleteAdding()
    //      BlockingCollection<T>.TryTake()
    //      BlockingCollection<T>.IsCompleted
    public static void BC_TryTake()
    {
        // Construct and fill our BlockingCollection
        using (BlockingCollection<int> bc = new BlockingCollection<int>())
        {
            int NUMITEMS = 10000;
            for (int i = 0; i < NUMITEMS; i++) bc.Add(i);
            bc.CompleteAdding();
            int outerSum = 0;

            // Delegate for consuming the BlockingCollection and adding up all items
            Action action = () =>
            {
                int localItem;
                int localSum = 0;

                while (bc.TryTake(out localItem)) localSum += localItem;
                Interlocked.Add(ref outerSum, localSum);
            };

            // Launch three parallel actions to consume the BlockingCollection
            Parallel.Invoke(action, action, action);

            Console.WriteLine("Sum[0..{0}) = {1}, should be {2}", NUMITEMS, outerSum, ((NUMITEMS * (NUMITEMS - 1)) / 2));
            Console.WriteLine("bc.IsCompleted = {0} (should be true)", bc.IsCompleted);
        }
    }
}

class FromToAnyDemo
{
    // Demonstrates:
    //      Bounded BlockingCollection<T>
    //      BlockingCollection<T>.TryAddToAny()
    //      BlockingCollection<T>.TryTakeFromAny()
    public static void BC_FromToAny()
    {
        BlockingCollection<int>[] bcs = new BlockingCollection<int>[2];
        bcs[0] = new BlockingCollection<int>(5); // collection bounded to 5 items
        bcs[1] = new BlockingCollection<int>(5); // collection bounded to 5 items

        // Should be able to add 10 items w/o blocking
        int numFailures = 0;
        for (int i = 0; i < 10; i++)
        {
            if (BlockingCollection<int>.TryAddToAny(bcs, i) == -1) numFailures++;
        }
        Console.WriteLine("TryAddToAny: {0} failures (should be 0)", numFailures);

        // Should be able to retrieve 10 items
        int numItems = 0;
        int item;
        while (BlockingCollection<int>.TryTakeFromAny(bcs, out item) != -1) numItems++;
        Console.WriteLine("TryTakeFromAny: retrieved {0} items (should be 10)", numItems);
    }
}

class ConsumingEnumerableDemo
{
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.CompleteAdding()
    //      BlockingCollection<T>.GetConsumingEnumerable()
    public static async Task BC_GetConsumingEnumerable()
    {
        using (BlockingCollection<int> bc = new BlockingCollection<int>())
        {
            // Kick off a producer task
            var producerTask = Task.Run(async () =>
            {
                for (int i = 0; i < 10; i++)
                {
                    bc.Add(i);
                    Console.WriteLine($"Producing: {i}");

                    await Task.Delay(100); // sleep 100 ms between adds
                }

                // Need to do this to keep foreach below from hanging
                bc.CompleteAdding();
            });

            // Now consume the blocking collection with foreach.
            // Use bc.GetConsumingEnumerable() instead of just bc because the
            // former will block waiting for completion and the latter will
            // simply take a snapshot of the current state of the underlying collection.
            foreach (var item in bc.GetConsumingEnumerable())
            {
                Console.WriteLine($"Consuming: {item}");
            }
            await producerTask; // Allow task to complete cleanup
        }
    }
}
open System
open System.Collections.Concurrent
open System.Threading
open System.Threading.Tasks

module AddTakeDemo =
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.Take()
    //      BlockingCollection<T>.CompleteAdding()
    let blockingCollectionAddTakeCompleteAdding () =
        task {
            use bc = new BlockingCollection<int>()
            // Spin up a Task to populate the BlockingCollection
            let t1 = 
                task {
                    bc.Add 1
                    bc.Add 2
                    bc.Add 3
                    bc.CompleteAdding()
                }

            // Spin up a Task to consume the BlockingCollection
            let t2 = 
                task {
                    try
                        // Consume consume the BlockingCollection
                        while true do 
                            printfn $"{bc.Take()}"
                    with :? InvalidOperationException ->
                        // An InvalidOperationException means that Take() was called on a completed collection
                        printfn "That's All!"
                }
            let! _ = Task.WhenAll(t1, t2)
            ()
        }

module TryTakeDemo =
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.CompleteAdding()
    //      BlockingCollection<T>.TryTake()
    //      BlockingCollection<T>.IsCompleted
    let blockingCollectionTryTake () =
        // Construct and fill our BlockingCollection
        use bc = new BlockingCollection<int>()
        let NUMITEMS = 10000;
        for i = 0 to NUMITEMS - 1 do
            bc.Add i
        bc.CompleteAdding()
        let mutable outerSum = 0

        // Delegate for consuming the BlockingCollection and adding up all items
        let action = 
            Action(fun () ->
                let mutable localItem = 0
                let mutable localSum = 0

                while bc.TryTake &localItem do
                    localSum <- localSum + localItem
                Interlocked.Add(&outerSum, localSum)
                |> ignore)

        // Launch three parallel actions to consume the BlockingCollection
        Parallel.Invoke(action, action, action)

        printfn $"Sum[0..{NUMITEMS}) = {outerSum}, should be {((NUMITEMS * (NUMITEMS - 1)) / 2)}"
        printfn $"bc.IsCompleted = {bc.IsCompleted} (should be true)"

module FromToAnyDemo =
    // Demonstrates:
    //      Bounded BlockingCollection<T>
    //      BlockingCollection<T>.TryAddToAny()
    //      BlockingCollection<T>.TryTakeFromAny()
    let blockingCollectionFromToAny () =
        let bcs = 
            [|
                new BlockingCollection<int>(5) // collection bounded to 5 items
                new BlockingCollection<int>(5) // collection bounded to 5 items
             |]
        // Should be able to add 10 items w/o blocking
        let mutable numFailures = 0;
        for i = 0 to 9 do
            if BlockingCollection<int>.TryAddToAny(bcs, i) = -1 then
                numFailures <- numFailures + 1
        printfn $"TryAddToAny: {numFailures} failures (should be 0)"

        // Should be able to retrieve 10 items
        let mutable numItems = 0
        let mutable item = 0
        while BlockingCollection<int>.TryTakeFromAny(bcs, &item) <> -1 do
            numItems <- numItems + 1
        printfn $"TryTakeFromAny: retrieved {numItems} items (should be 10)"

module ConsumingEnumerableDemo =
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.CompleteAdding()
    //      BlockingCollection<T>.GetConsumingEnumerable()
    let blockingCollectionGetConsumingEnumerable () =
        task {
            use bc = new BlockingCollection<int>()
            // Kick off a producer task
            let producerTask =
                task {
                    for i = 0 to 9 do
                        bc.Add i
                        printfn $"Producing: {i}"

                        do! Task.Delay 100 // sleep 100 ms between adds
                    // Need to do this to keep foreach below from hanging
                    bc.CompleteAdding()
                }

            // Now consume the blocking collection with foreach.
            // Use bc.GetConsumingEnumerable() instead of just bc because the
            // former will block waiting for completion and the latter will
            // simply take a snapshot of the current state of the underlying collection.
            for item in bc.GetConsumingEnumerable() do
                printfn $"Consuming: {item}"
            do! producerTask // Allow task to complete cleanup
        }

let main =
    task {
        do! AddTakeDemo.blockingCollectionAddTakeCompleteAdding ()
        TryTakeDemo.blockingCollectionTryTake ()
        FromToAnyDemo.blockingCollectionFromToAny ()
        do! ConsumingEnumerableDemo.blockingCollectionGetConsumingEnumerable ()
        printfn "Press any key to exit."
        Console.ReadKey(true) |> ignore
    }
main.Wait()
Imports System.Threading.Tasks
Imports System.Collections.Concurrent
Imports System.Threading

Class BlockingCollectionDemo
    Shared Sub Main()
        AddTakeDemo.BC_AddTakeCompleteAdding()
        TryTakeDemo.BC_TryTake()
        ToAnyDemo.BC_ToAny()
        ConsumingEnumerableDemo.BC_GetConsumingEnumerable()
        ' Keep the console window open in debug mode
        Console.WriteLine("Press any key to exit.")
        Console.ReadKey()
    End Sub
End Class

Class AddTakeDemo

    ' Demonstrates:
    ' BlockingCollection<T>.Add()
    ' BlockingCollection<T>.Take()
    ' BlockingCollection<T>.CompleteAdding()
    Shared Sub BC_AddTakeCompleteAdding()
        Using bc As New BlockingCollection(Of Integer)()

            ' Spin up a Task to populate the BlockingCollection 
            Using t1 As Task = Task.Factory.StartNew(
                Sub()
                    bc.Add(1)
                    bc.Add(2)
                    bc.Add(3)
                    bc.CompleteAdding()
                End Sub)
                ' Spin up a Task to consume the BlockingCollection
                Using t2 As Task = Task.Factory.StartNew(
                Sub()
                    Try
                        ' Consume the BlockingCollection
                        While True
                            Console.WriteLine(bc.Take())
                        End While
                    Catch generatedExceptionName As InvalidOperationException
                        ' An InvalidOperationException means that Take() was called on a completed collection
                        Console.WriteLine("That's All!")
                    End Try
                End Sub)

                    Task.WaitAll(t1, t2)
                End Using
            End Using
        End Using
    End Sub



End Class

'Imports System.Collections.Concurrent
'Imports System.Threading
'Imports System.Threading.Tasks

Class TryTakeDemo
    ' Demonstrates:
    ' BlockingCollection<T>.Add()
    ' BlockingCollection<T>.CompleteAdding()
    ' BlockingCollection<T>.TryTake()
    ' BlockingCollection<T>.IsCompleted
    Shared Sub BC_TryTake()
        ' Construct and fill our BlockingCollection
        Using bc As New BlockingCollection(Of Integer)()
            Dim NUMITEMS As Integer = 10000
            For i As Integer = 0 To NUMITEMS - 1
                bc.Add(i)
            Next
            bc.CompleteAdding()
            Dim outerSum As Integer = 0

            ' Delegate for consuming the BlockingCollection and adding up all items
            Dim action As Action =
                Sub()
                    Dim localItem As Integer
                    Dim localSum As Integer = 0

                    While bc.TryTake(localItem)
                        localSum += localItem
                    End While
                    Interlocked.Add(outerSum, localSum)
                End Sub

            ' Launch three parallel actions to consume the BlockingCollection
            Parallel.Invoke(action, action, action)

            Console.WriteLine("Sum[0..{0}) = {1}, should be {2}", NUMITEMS, outerSum, ((NUMITEMS * (NUMITEMS - 1)) / 2))
            Console.WriteLine("bc.IsCompleted = {0} (should be true)", bc.IsCompleted)
        End Using
    End Sub

End Class

'Imports System.Threading.Tasks
'Imports System.Collections.Concurrent

' Demonstrates:
' Bounded BlockingCollection<T>
' BlockingCollection<T>.TryAddToAny()
' BlockingCollection<T>.TryTakeFromAny()
Class ToAnyDemo
    Shared Sub BC_ToAny()
        Dim bcs As BlockingCollection(Of Integer)() = New BlockingCollection(Of Integer)(1) {}
        bcs(0) = New BlockingCollection(Of Integer)(5)
        ' collection bounded to 5 items
        bcs(1) = New BlockingCollection(Of Integer)(5)
        ' collection bounded to 5 items
        ' Should be able to add 10 items w/o blocking
        Dim numFailures As Integer = 0
        For i As Integer = 0 To 9
            If BlockingCollection(Of Integer).TryAddToAny(bcs, i) = -1 Then
                numFailures += 1
            End If
        Next
        Console.WriteLine("TryAddToAny: {0} failures (should be 0)", numFailures)

        ' Should be able to retrieve 10 items
        Dim numItems As Integer = 0
        Dim item As Integer
        While BlockingCollection(Of Integer).TryTakeFromAny(bcs, item) <> -1
            numItems += 1
        End While
        Console.WriteLine("TryTakeFromAny: retrieved {0} items (should be 10)", numItems)
    End Sub
End Class

'Imports System.Threading.Tasks
'Imports System.Collections.Concurrent

' Demonstrates:
' BlockingCollection<T>.Add()
' BlockingCollection<T>.CompleteAdding()
' BlockingCollection<T>.GetConsumingEnumerable()

Class ConsumingEnumerableDemo
    Shared Sub BC_GetConsumingEnumerable()
        Using bc As New BlockingCollection(Of Integer)()

            ' Kick off a producer task
            Task.Factory.StartNew(
                Sub()
                    For i As Integer = 0 To 9
                        bc.Add(i)
                        ' sleep 100 ms between adds
                        Thread.Sleep(100)
                    Next

                    ' Need to do this to keep foreach below from not responding.
                    bc.CompleteAdding()
                End Sub)
            ' Now consume the blocking collection with foreach.
            ' Use bc.GetConsumingEnumerable() instead of just bc because the
            ' former will block waiting for completion and the latter will
            ' simply take a snapshot of the current state of the underlying collection.
            For Each item In bc.GetConsumingEnumerable()
                Console.WriteLine(item)
            Next
        End Using
    End Sub
End Class

Kommentarer

BlockingCollection<T> är en trådsäker samlingsklass som tillhandahåller följande:

Important

Den här typen implementerar IDisposable gränssnittet. När du har använt typen bör du kassera den på ett direkt eller indirekt sätt. Om du vill ta bort typen direkt anropar du dess Dispose metod i ett try/catch block. Om du vill ta bort det indirekt använder du en språkkonstruktion som using (i C#) eller Using (i Visual Basic). Mer information finns i avsnittet "Använda ett objekt som implementerar IDisposable" i IDisposable gränssnittet. Observera också att Dispose() metoden inte är trådsäker. Alla andra offentliga och skyddade medlemmar BlockingCollection<T> i är trådsäkra och kan användas samtidigt från flera trådar.

IProducerConsumerCollection<T> representerar en samling som möjliggör trådsäker tillägg och borttagning av data. BlockingCollection<T> används som omslutning för en IProducerConsumerCollection<T> instans och tillåter att borttagningsförsök från samlingen blockeras tills data är tillgängliga för att tas bort. På samma sätt kan du skapa en BlockingCollection<T> för att framtvinga en övre gräns för antalet dataelement som tillåts i IProducerConsumerCollection<T>. Tilläggsförsök i samlingen kan sedan blockeras tills det finns utrymme för att lagra de tillagda objekten. På så sätt BlockingCollection<T> liknar en traditionell blockering av ködatastruktur, förutom att den underliggande datalagringsmekanismen abstraheras bort som en IProducerConsumerCollection<T>.

BlockingCollection<T> stöder avgränsning och blockering. Avgränsning innebär att du kan ange den maximala kapaciteten för samlingen. Avgränsning är viktigt i vissa scenarier eftersom det gör att du kan styra den maximala storleken på samlingen i minnet, och det förhindrar att de producerande trådarna rör sig för långt före de förbrukande trådarna. Flera trådar eller uppgifter kan lägga till objekt i samlingen samtidigt, och om samlingen når sin angivna maximala kapacitet blockeras de producerande trådarna tills ett objekt tas bort. Flera konsumenter kan ta bort objekt samtidigt, och om samlingen blir tom blockeras de konsumerande trådarna tills en producent lägger till ett objekt. En producerande tråd kan anropa CompleteAdding metoden för att indikera att inga fler objekt kommer att läggas till. Konsumenter övervakar IsCompleted egenskapen för att veta när samlingen är tom och inga fler objekt läggs till.

Add och Take åtgärder utförs vanligtvis i en loop. Du kan avbryta en loop genom att skicka in ett CancellationToken objekt till TryAdd metoden eller TryTake och sedan kontrollera värdet för tokens IsCancellationRequested egenskap för varje iteration. Om värdet är trueär det upp till dig att svara på begäran om annullering genom att rensa alla resurser och avsluta loopen.

När du skapar ett BlockingCollection<T> objekt kan du ange inte bara den avgränsade kapaciteten utan även vilken typ av samling som ska användas. Du kan till exempel ange ett ConcurrentQueue<T> objekt för fifo-beteende (first in, first out) eller ett ConcurrentStack<T> objekt för lifo-beteende (last in, first out). Du kan använda valfri samlingsklass som implementerar IProducerConsumerCollection<T> gränssnittet. Standardsamlingstypen för BlockingCollection<T> är ConcurrentQueue<T>.

Ändra inte den underliggande samlingen direkt. Använd BlockingCollection<T> metoder för att lägga till eller ta bort element. Objektet BlockingCollection<T> kan skadas om du ändrar den underliggande samlingen direkt.

BlockingCollection<T> har inte utformats med asynkron åtkomst i åtanke. Om ditt program kräver asynkrona producent-/konsumentscenarier bör du överväga att använda Channel<T> i stället.

Konstruktorer

Name Description
BlockingCollection<T>()

Initierar en ny instans av BlockingCollection<T> klassen utan en övre gräns.

BlockingCollection<T>(Int32)

Initierar en ny instans av BlockingCollection<T> klassen med angiven övre gräns.

BlockingCollection<T>(IProducerConsumerCollection<T>, Int32)

Initierar en ny instans av BlockingCollection<T> klassen med den angivna övre gränsen och använder den angivna IProducerConsumerCollection<T> som dess underliggande datalager.

BlockingCollection<T>(IProducerConsumerCollection<T>)

Initierar en ny instans av BlockingCollection<T> klassen utan en övre gräns och använder den angivna IProducerConsumerCollection<T> som dess underliggande datalager.

Egenskaper

Name Description
BoundedCapacity

Hämtar den begränsade kapaciteten för den här BlockingCollection<T> instansen.

Count

Hämtar antalet objekt som finns i BlockingCollection<T>.

IsAddingCompleted

Hämtar om detta BlockingCollection<T> har markerats som slutfört för att lägga till.

IsCompleted

Hämtar om detta BlockingCollection<T> har markerats som klart för att lägga till och är tomt.

Metoder

Name Description
Add(T, CancellationToken)

Lägger till objektet i BlockingCollection<T>.

Add(T)

Lägger till objektet i BlockingCollection<T>.

AddToAny(BlockingCollection<T>[], T, CancellationToken)

Lägger till det angivna objektet i någon av de angivna BlockingCollection<T> instanserna.

AddToAny(BlockingCollection<T>[], T)

Lägger till det angivna objektet i någon av de angivna BlockingCollection<T> instanserna.

CompleteAdding()

Markerar instanserna BlockingCollection<T> som att de inte accepterar fler tillägg.

CopyTo(T[], Int32)

Kopierar alla objekt i instansen BlockingCollection<T> till en kompatibel endimensionell matris med början vid det angivna indexet för målmatrisen.

Dispose()

Släpper alla resurser som används av den aktuella instansen BlockingCollection<T> av klassen.

Dispose(Boolean)

Frigör resurser som används av instansen BlockingCollection<T> .

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetConsumingEnumerable()

Ger en användning IEnumerable<T> för objekt i samlingen.

GetConsumingEnumerable(CancellationToken)

Ger en användning IEnumerable<T> för objekt i samlingen.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Take()

Tar bort ett objekt från BlockingCollection<T>.

Take(CancellationToken)

Tar bort ett objekt från BlockingCollection<T>.

TakeFromAny(BlockingCollection<T>[], T, CancellationToken)

Tar ett objekt från någon av de angivna BlockingCollection<T> instanserna medan du observerar den angivna annulleringstoken.

TakeFromAny(BlockingCollection<T>[], T)

Tar ett objekt från någon av de angivna BlockingCollection<T> instanserna.

ToArray()

Kopierar objekten från instansen BlockingCollection<T> till en ny matris.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TryAdd(T, Int32, CancellationToken)

Försöker lägga till det angivna objektet BlockingCollection<T> inom den angivna tidsperioden, samtidigt som en annulleringstoken observeras.

TryAdd(T, Int32)

Försöker lägga till det angivna objektet inom den angivna tidsperioden BlockingCollection<T> .

TryAdd(T, TimeSpan)

Försöker lägga till det angivna objektet i BlockingCollection<T>.

TryAdd(T)

Försöker lägga till det angivna objektet i BlockingCollection<T>.

TryAddToAny(BlockingCollection<T>[], T, Int32, CancellationToken)

Försöker lägga till det angivna objektet i någon av de angivna BlockingCollection<T> instanserna.

TryAddToAny(BlockingCollection<T>[], T, Int32)

Försöker lägga till det angivna objektet i någon av de angivna BlockingCollection<T> instanserna.

TryAddToAny(BlockingCollection<T>[], T, TimeSpan)

Försöker lägga till det angivna objektet i någon av de angivna BlockingCollection<T> instanserna samtidigt som den angivna annulleringstoken observeras.

TryAddToAny(BlockingCollection<T>[], T)

Försöker lägga till det angivna objektet i någon av de angivna BlockingCollection<T> instanserna.

TryTake(T, Int32, CancellationToken)

Försöker ta bort ett objekt från BlockingCollection<T> under den angivna tidsperioden samtidigt som en annulleringstoken observeras.

TryTake(T, Int32)

Försöker ta bort ett objekt från BlockingCollection<T> den angivna tidsperioden.

TryTake(T, TimeSpan)

Försöker ta bort ett objekt från BlockingCollection<T> den angivna tidsperioden.

TryTake(T)

Försöker ta bort ett objekt från BlockingCollection<T>.

TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)

Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.

TryTakeFromAny(BlockingCollection<T>[], T, Int32)

Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.

TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)

Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.

TryTakeFromAny(BlockingCollection<T>[], T)

Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.

Explicita gränssnittsimplementeringar

Name Description
ICollection.CopyTo(Array, Int32)

Kopierar alla objekt i instansen BlockingCollection<T> till en kompatibel endimensionell matris med början vid det angivna indexet för målmatrisen.

ICollection.IsSynchronized

Hämtar ett värde som anger om åtkomsten ICollection till är synkroniserad (trådsäker).

ICollection.SyncRoot

Hämtar ett objekt som kan användas för att synkronisera åtkomsten ICollectiontill . Den här egenskapen stöds inte.

IEnumerable.GetEnumerator()

Innehåller en IEnumerator för objekt i samlingen.

IEnumerable<T>.GetEnumerator()

Innehåller en IEnumerator<T> för objekt i samlingen.

Tilläggsmetoder

Name Description
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

Använder en ackumulatorfunktion över en sekvens. Det angivna startvärdet används som det initiala ackumulatorvärdet och den angivna funktionen används för att välja resultatvärdet.

Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

Använder en ackumulatorfunktion över en sekvens. Det angivna startvärdet används som det initiala ackumulatorvärdet.

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)

Använder en ackumulatorfunktion över en sekvens.

All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Avgör om alla element i en sekvens uppfyller ett villkor.

Ancestors<T>(IEnumerable<T>, XName)

Returnerar en filtrerad samling element som innehåller överordnade element för varje nod i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Ancestors<T>(IEnumerable<T>)

Returnerar en samling element som innehåller överordnade element för varje nod i källsamlingen.

Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Avgör om något element i en sekvens uppfyller ett villkor.

Any<TSource>(IEnumerable<TSource>)

Avgör om en sekvens innehåller några element.

Append<TSource>(IEnumerable<TSource>, TSource)

Lägger till ett värde i slutet av sekvensen.

AsEnumerable<TSource>(IEnumerable<TSource>)

Returnerar indata som skrivits som IEnumerable<T>.

AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsParallel<TSource>(IEnumerable<TSource>)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

AsQueryable<TElement>(IEnumerable<TElement>)

Konverterar en allmän IEnumerable<T> till en allmän IQueryable<T>.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Beräknar medelvärdet av en sekvens med Decimal värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Beräknar medelvärdet av en sekvens med Double värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Beräknar medelvärdet av en sekvens med Int32 värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Beräknar medelvärdet av en sekvens med Int64 värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Beräknar medelvärdet av en sekvens med null-värden Decimal som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Beräknar medelvärdet av en sekvens med null-värden Double som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Beräknar medelvärdet av en sekvens med null-värden Int32 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Beräknar medelvärdet av en sekvens med null-värden Int64 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Beräknar medelvärdet av en sekvens med null-värden Single som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Beräknar medelvärdet av en sekvens med Single värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Sammanfogar två sekvenser.

Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>)

Avgör om en sekvens innehåller ett angivet element med hjälp av en angiven IEqualityComparer<T>.

Contains<TSource>(IEnumerable<TSource>, TSource)

Avgör om en sekvens innehåller ett angivet element med hjälp av standardjämförlikningsjämföraren.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Kopierar DataRow objekt till angivet DataTable, givet ett indataobjekt IEnumerable<T> där den generiska parametern T är DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Kopierar DataRow objekt till angivet DataTable, givet ett indataobjekt IEnumerable<T> där den generiska parametern T är DataRow.

CopyToDataTable<T>(IEnumerable<T>)

Returnerar en DataTable som innehåller kopior av objekten DataRow , givet ett indataobjekt IEnumerable<T> där den generiska parametern T är DataRow.

Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar ett tal som representerar hur många element i den angivna sekvensen som uppfyller ett villkor.

Count<TSource>(IEnumerable<TSource>)

Returnerar antalet element i en sekvens.

DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)

Returnerar elementen i den angivna sekvensen eller det angivna värdet i en singleton-samling om sekvensen är tom.

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Returnerar elementen i den angivna sekvensen eller typparameterns standardvärde i en singleton-samling om sekvensen är tom.

DescendantNodes<T>(IEnumerable<T>)

Returnerar en samling underordnade noder i varje dokument och element i källsamlingen.

Descendants<T>(IEnumerable<T>, XName)

Returnerar en filtrerad samling element som innehåller underordnade element för varje element och dokument i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Descendants<T>(IEnumerable<T>)

Returnerar en samling element som innehåller underordnade element för varje element och dokument i källsamlingen.

Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Returnerar distinkta element från en sekvens med hjälp av en angiven IEqualityComparer<T> för att jämföra värden.

Distinct<TSource>(IEnumerable<TSource>)

Returnerar distinkta element från en sekvens med hjälp av standardjämlikhetsjämföraren för att jämföra värden.

ElementAt<TSource>(IEnumerable<TSource>, Int32)

Returnerar elementet vid ett angivet index i en sekvens.

ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32)

Returnerar elementet vid ett angivet index i en sekvens eller ett standardvärde om indexet ligger utom intervallet.

Elements<T>(IEnumerable<T>, XName)

Returnerar en filtrerad samling av underordnade element i varje element och dokument i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Elements<T>(IEnumerable<T>)

Returnerar en samling underordnade element i varje element och dokument i källsamlingen.

Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Skapar den inställda skillnaden mellan två sekvenser med hjälp av angivna IEqualityComparer<T> för att jämföra värden.

Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Ger den angivna skillnaden mellan två sekvenser genom att använda standardjämlikhetsjämförlikningsjämföraren för att jämföra värden.

First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar det första elementet i en sekvens som uppfyller ett angivet villkor.

First<TSource>(IEnumerable<TSource>)

Returnerar det första elementet i en sekvens.

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar det första elementet i sekvensen som uppfyller ett villkor eller ett standardvärde om inget sådant element hittas.

FirstOrDefault<TSource>(IEnumerable<TSource>)

Returnerar det första elementet i en sekvens eller ett standardvärde om sekvensen inte innehåller några element.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel. Nyckelvärden jämförs med en angiven jämförelse, och elementen i varje grupp projiceras med hjälp av en angiven funktion.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>)

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel. Elementen i varje grupp projiceras med hjälp av en angiven funktion.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Grupperar elementen i en sekvens enligt en nyckelväljare. Nycklarna jämförs med en jämförelse och varje grupps element projiceras med hjälp av en angiven funktion.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och projicerar elementen för varje grupp med hjälp av en angiven funktion.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>)

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel. Nycklarna jämförs med en angiven jämförelse.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>)

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och jämför nycklarna med hjälp av en angiven jämförelse.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Grupperar elementen i en sekvens enligt en angiven nyckelväljare.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Korrelerar elementen i två sekvenser baserat på nyckeljämlikhet och grupperar resultaten. En angiven IEqualityComparer<T> används för att jämföra nycklar.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>)

Korrelerar elementen i två sekvenser baserat på likhet mellan nycklar och grupperar resultatet. Standardjämförlikningsjämföraren används för att jämföra nycklar.

InDocumentOrder<T>(IEnumerable<T>)

Returnerar en samling noder som innehåller alla noder i källsamlingen, sorterade i dokumentordning.

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Skapar den angivna skärningspunkten mellan två sekvenser med hjälp av angivna IEqualityComparer<T> för att jämföra värden.

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Genererar den angivna skärningspunkten för två sekvenser med hjälp av standardjämlikhetsjämförlikningsjämföraren för att jämföra värden.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>)

Korrelerar elementen i två sekvenser baserat på matchande nycklar. En angiven IEqualityComparer<T> används för att jämföra nycklar.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>)

Korrelerar elementen i två sekvenser baserat på matchande nycklar. Standardjämförlikningsjämföraren används för att jämföra nycklar.

Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar det sista elementet i en sekvens som uppfyller ett angivet villkor.

Last<TSource>(IEnumerable<TSource>)

Returnerar det sista elementet i en sekvens.

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar det sista elementet i en sekvens som uppfyller ett villkor eller ett standardvärde om inget sådant element hittas.

LastOrDefault<TSource>(IEnumerable<TSource>)

Returnerar det sista elementet i en sekvens eller ett standardvärde om sekvensen inte innehåller några element.

LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar ett Int64 som representerar hur många element i en sekvens som uppfyller ett villkor.

LongCount<TSource>(IEnumerable<TSource>)

Returnerar ett Int64 som representerar det totala antalet element i en sekvens.

Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Anropar en transformeringsfunktion på varje element i en allmän sekvens och returnerar det maximala resulterande värdet.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Decimal värdet.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Double värdet.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Int32 värdet.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Int64 värdet.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Decimal .

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Double .

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Int32 .

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Int64 .

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Single .

Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Single värdet.

Max<TSource>(IEnumerable<TSource>)

Returnerar det maximala värdet i en allmän sekvens.

Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Anropar en transformeringsfunktion på varje element i en allmän sekvens och returnerar det lägsta resulterande värdet.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Decimal .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Double .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Int32 .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Int64 .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Decimal .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Double .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Int32 .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Int64 .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Single .

Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Single .

Min<TSource>(IEnumerable<TSource>)

Returnerar minimivärdet i en allmän sekvens.

Nodes<T>(IEnumerable<T>)

Returnerar en samling av de underordnade noderna i varje dokument och element i källsamlingen.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Sorterar elementen i en sekvens i stigande ordning med hjälp av en angiven jämförelse.

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Sorterar elementen i en sekvens i stigande ordning enligt en nyckel.

OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Sorterar elementen i en sekvens i fallande ordning med hjälp av en angiven jämförelse.

OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Sorterar elementen i en sekvens i fallande ordning enligt en nyckel.

Prepend<TSource>(IEnumerable<TSource>, TSource)

Lägger till ett värde i början av sekvensen.

Remove<T>(IEnumerable<T>)

Tar bort varje nod i källsamlingen från den överordnade noden.

Reverse<TSource>(IEnumerable<TSource>)

Invertera ordningen på elementen i en sekvens.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)

Projicerar varje element i en sekvens i ett nytt formulär genom att införliva elementets index.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Projicerar varje element i en sekvens till ett nytt formulär.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Projicerar varje element i en sekvens till en IEnumerable<T>, jämnar ut de resulterande sekvenserna i en sekvens och anropar en resultatväljarefunktion på varje element däri.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Projicerar varje element i en sekvens till en IEnumerable<T>, jämnar ut de resulterande sekvenserna i en sekvens och anropar en resultatväljarefunktion på varje element däri. Indexet för varje källelement används i den mellanliggande projekterade formen av det elementet.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>)

Projicerar varje element i en sekvens till en IEnumerable<T> och jämnar ut de resulterande sekvenserna i en sekvens.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>)

Projicerar varje element i en sekvens till en IEnumerable<T>, och jämnar ut de resulterande sekvenserna i en sekvens. Indexet för varje källelement används i den projekterade formen av det elementet.

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Avgör om två sekvenser är lika med genom att jämföra deras element med hjälp av en angiven IEqualityComparer<T>.

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Avgör om två sekvenser är lika med genom att jämföra elementen med hjälp av standardjämlikhetsjämföraren för deras typ.

Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar det enda elementet i en sekvens som uppfyller ett angivet villkor och genererar ett undantag om mer än ett sådant element finns.

Single<TSource>(IEnumerable<TSource>)

Returnerar det enda elementet i en sekvens och genererar ett undantag om det inte finns exakt ett element i sekvensen.

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar det enda elementet i en sekvens som uppfyller ett angivet villkor eller ett standardvärde om det inte finns något sådant element. den här metoden utlöser ett undantag om fler än ett element uppfyller villkoret.

SingleOrDefault<TSource>(IEnumerable<TSource>)

Returnerar det enda elementet i en sekvens eller ett standardvärde om sekvensen är tom. den här metoden utlöser ett undantag om det finns fler än ett element i sekvensen.

Skip<TSource>(IEnumerable<TSource>, Int32)

Kringgår ett angivet antal element i en sekvens och returnerar sedan de återstående elementen.

SkipLast<TSource>(IEnumerable<TSource>, Int32)

Returnerar en ny uppräkningsbar samling som innehåller elementen från source med de sista count elementen i källsamlingen som utelämnas.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Kringgår element i en sekvens så länge ett angivet villkor är sant och returnerar sedan de återstående elementen.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Kringgår element i en sekvens så länge ett angivet villkor är sant och returnerar sedan de återstående elementen. Elementets index används i logiken i predikatfunktionen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Beräknar summan av sekvensen med Decimal värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Beräknar summan av sekvensen med Double värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Beräknar summan av sekvensen med Int32 värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Beräknar summan av sekvensen med Int64 värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Beräknar summan av sekvensen med null-värden Decimal som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Beräknar summan av sekvensen med null-värden Double som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Beräknar summan av sekvensen med null-värden Int32 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Beräknar summan av sekvensen med null-värden Int64 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Beräknar summan av sekvensen med null-värden Single som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Beräknar summan av sekvensen med Single värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Take<TSource>(IEnumerable<TSource>, Int32)

Returnerar ett angivet antal sammanhängande element från början av en sekvens.

TakeLast<TSource>(IEnumerable<TSource>, Int32)

Returnerar en ny uppräkningsbar samling som innehåller de sista count elementen från source.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returnerar element från en sekvens så länge ett angivet villkor är sant.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Returnerar element från en sekvens så länge ett angivet villkor är sant. Elementets index används i logiken i predikatfunktionen.

ToArray<TSource>(IEnumerable<TSource>)

Skapar en matris från en IEnumerable<T>.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare, en jämförelsefunktion och en elementväljare.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt angivna funktioner för nyckelväljare och elementväljare.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare och nyckeljäxare.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare.

ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Skapar en HashSet<T> från en IEnumerable<T> med hjälp av comparer för att jämföra nycklar.

ToHashSet<TSource>(IEnumerable<TSource>)

Skapar en HashSet<T> från en IEnumerable<T>.

ToImmutableArray<TSource>(IEnumerable<TSource>)

Skapar en oföränderlig matris från den angivna samlingen.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>)

Räknar upp och transformerar en sekvens och skapar en oföränderlig ordlista med dess innehåll med hjälp av de angivna nyckel- och värdejäxorna.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>)

Räknar upp och transformerar en sekvens och skapar en oföränderlig ordlista med dess innehåll med hjälp av den angivna nyckeljäxaren.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Räknar upp och transformerar en sekvens och skapar en oföränderlig ordlista med dess innehåll.

ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Konstruerar en oföränderlig ordlista baserat på en viss omvandling av en sekvens.

ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Konstruerar en oföränderlig ordlista från en befintlig samling element och tillämpar en transformeringsfunktion på källnycklarna.

ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Räknar upp en sekvens, skapar en oföränderlig hashuppsättning av innehållet och använder den angivna likhetsjämföraren för den angivna typen.

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

Räknar upp en sekvens och skapar en oföränderlig hashuppsättning med dess innehåll.

ToImmutableList<TSource>(IEnumerable<TSource>)

Räknar upp en sekvens och skapar en oföränderlig lista över dess innehåll.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>)

Räknar upp och transformerar en sekvens och skapar en oföränderlig sorterad ordlista med dess innehåll med hjälp av de angivna nyckel- och värdejäxorna.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>)

Räknar upp och transformerar en sekvens och skapar en oföränderlig sorterad ordlista med dess innehåll med hjälp av den angivna nyckeljäxaren.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Räknar upp och transformerar en sekvens och skapar en oföränderlig sorterad ordlista med dess innehåll.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Räknar upp en sekvens, skapar en oföränderlig sorterad uppsättning av dess innehåll och använder den angivna jämförelsen.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

Räknar upp en sekvens och skapar en oföränderlig sorterad uppsättning av dess innehåll.

ToList<TSource>(IEnumerable<TSource>)

Skapar en List<T> från en IEnumerable<T>.

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt en angiven nyckelväljare, en jämförelsefunktion och en elementväljare.

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt angivna funktioner för nyckelväljare och elementväljare.

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt en angiven nyckelväljare och nyckeljäxare.

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt en angiven nyckelväljare.

Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Skapar uppsättningen union av två sekvenser med hjälp av en angiven IEqualityComparer<T>.

Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Skapar uppsättningsunionen med två sekvenser med hjälp av standardjämförlikningsjämföraren.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Filtrerar en sekvens med värden baserat på ett predikat.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Filtrerar en sekvens med värden baserat på ett predikat. Varje elements index används i logiken i predikatfunktionen.

Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)

Tillämpar en angiven funktion på motsvarande element i två sekvenser, vilket ger en sekvens av resultaten.

Gäller för

Trådsäkerhet

Metoden Dispose är inte trådsäker. Alla andra offentliga och skyddade medlemmar BlockingCollection<T> i är trådsäkra och kan användas samtidigt från flera trådar.

Se även