BlockingCollection<T> Classe

Definizione

Fornisce funzionalità di blocco e del delimitazione per le raccolte thread-safe che implementano 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.Versioning.UnsupportedOSPlatform("browser")]
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.Versioning.UnsupportedOSPlatform("browser")>]
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)

Parametri di tipo

T

Tipo di elementi nella raccolta.

Ereditarietà
BlockingCollection<T>
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come aggiungere e accettare elementi contemporaneamente da una raccolta di blocco:

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

Commenti

BlockingCollection<T> è una classe di raccolta thread-safe che fornisce quanto segue:

Importante

Questo tipo implementa l'interfaccia IDisposable. Al termine dell'uso del tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il metodo Dispose in un blocco try/catch. Per eliminarlo indirettamente, usare un costrutto del linguaggio, ad esempio using (in C#) o Using (in Visual Basic). Per altre informazioni, vedere la sezione "Uso di un oggetto che implementa IDisposable" nell'argomento relativo all'interfaccia IDisposable. Si noti inoltre che il metodo Dispose() non è thread-safe. Tutti gli altri membri pubblici e protetti di BlockingCollection<T> sono thread-safe e possono essere usati simultaneamente da più thread.

IProducerConsumerCollection<T> rappresenta una raccolta che consente l'aggiunta e la rimozione di dati thread-safe. BlockingCollection<T> viene usato come wrapper per un'istanza di IProducerConsumerCollection<T> e consente di rimuovere i tentativi di rimozione dalla raccolta fino a quando non sono disponibili dati. Analogamente, è possibile creare un BlockingCollection<T> per applicare un limite superiore al numero di elementi dati consentiti nella IProducerConsumerCollection<T>; i tentativi di aggiunta alla raccolta possono quindi bloccarsi fino a quando lo spazio non è disponibile per archiviare gli elementi aggiunti. In questo modo, BlockingCollection<T> è simile a una struttura di dati della coda di blocco tradizionale, ad eccezione del fatto che il meccanismo di archiviazione dei dati sottostante viene estratto come IProducerConsumerCollection<T>.

BlockingCollection<T> supporta il delimitazione e il blocco. Il delimitazione significa che è possibile impostare la capacità massima della raccolta. Il delimitazione è importante in alcuni scenari perché consente di controllare le dimensioni massime della raccolta in memoria e impedisce ai thread di produzione di spostarsi troppo avanti rispetto ai thread che utilizzano. Più thread o attività possono aggiungere elementi alla raccolta contemporaneamente e se la raccolta raggiunge la capacità massima specificata, i thread di produzione si bloccano fino a quando non viene rimosso un elemento. Più consumer possono rimuovere gli elementi contemporaneamente e, se la raccolta diventa vuota, i thread che utilizzano verranno bloccati fino a quando un producer non aggiunge un elemento. Un thread di produzione può chiamare il metodo CompleteAdding per indicare che non verranno aggiunti altri elementi. I consumer monitorano la proprietà IsCompleted per sapere quando la raccolta è vuota e non verranno aggiunti altri elementi.

le operazioni Add e Take vengono in genere eseguite in un ciclo. È possibile annullare un ciclo passando un oggetto CancellationToken al metodo TryAdd o TryTake e quindi controllando il valore della proprietà IsCancellationRequested del token in ogni iterazione. Se il valore è true, spetta all'utente rispondere alla richiesta di annullamento pulendo le risorse e chiudendo il ciclo.

Quando si crea un oggetto BlockingCollection<T>, è possibile specificare non solo la capacità associata, ma anche il tipo di raccolta da utilizzare. Ad esempio, è possibile specificare un oggetto ConcurrentQueue<T> per il primo comportamento, primo out (FIFO) o un oggetto ConcurrentStack<T> per l'ultimo comportamento in uscita (LIFO). È possibile usare qualsiasi classe di raccolta che implementa l'interfaccia IProducerConsumerCollection<T>. Il tipo di raccolta predefinito per BlockingCollection<T> è ConcurrentQueue<T>.

Non modificare direttamente la raccolta sottostante. Utilizzare BlockingCollection<T> metodi per aggiungere o rimuovere elementi. L'oggetto BlockingCollection<T> può essere danneggiato se si modifica direttamente la raccolta sottostante.

BlockingCollection<T> non è stato progettato tenendo presente l'accesso asincrono. Se l'applicazione richiede scenari producer/consumer asincroni, è consigliabile usare Channel<T>.

Costruttori

BlockingCollection<T>()

Inizializza una nuova istanza della classe BlockingCollection<T> senza un limite superiore.

BlockingCollection<T>(Int32)

Inizializza una nuova istanza della classe BlockingCollection<T> con il limite superiore specificato.

BlockingCollection<T>(IProducerConsumerCollection<T>)

Inizializza una nuova istanza della classe BlockingCollection<T> senza un limite superiore e utilizzando il IProducerConsumerCollection<T> fornito come archivio dati sottostante.

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

Inizializza una nuova istanza della classe BlockingCollection<T> con il limite superiore specificato e utilizzando il IProducerConsumerCollection<T> fornito come archivio dati sottostante.

Proprietà

BoundedCapacity

Ottiene la capacità limitata di questa istanza di BlockingCollection<T>.

Count

Ottiene il numero di elementi contenuti nella BlockingCollection<T>.

IsAddingCompleted

Ottiene un valore che indica se questo BlockingCollection<T> è stato contrassegnato come completo per l'aggiunta.

IsCompleted

Ottiene un valore che indica se questo BlockingCollection<T> è stato contrassegnato come completo per l'aggiunta e è vuoto.

Metodi

Add(T)

Aggiunge l'elemento alla BlockingCollection<T>.

Add(T, CancellationToken)

Aggiunge l'elemento alla BlockingCollection<T>.

AddToAny(BlockingCollection<T>[], T)

Aggiunge l'elemento specificato a una delle istanze di BlockingCollection<T> specificate.

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

Aggiunge l'elemento specificato a una delle istanze di BlockingCollection<T> specificate.

CompleteAdding()

Contrassegna le istanze di BlockingCollection<T> come non accettare altre aggiunte.

CopyTo(T[], Int32)

Copia tutti gli elementi nell'istanza di BlockingCollection<T> in una matrice unidimensionale compatibile, a partire dall'indice specificato della matrice di destinazione.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe BlockingCollection<T>.

Dispose(Boolean)

Rilascia le risorse usate dall'istanza di BlockingCollection<T>.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetConsumingEnumerable()

Fornisce un IEnumerable<T> di utilizzo per gli elementi nella raccolta.

GetConsumingEnumerable(CancellationToken)

Fornisce un IEnumerable<T> di utilizzo per gli elementi nella raccolta.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Take()

Rimuove un elemento dal BlockingCollection<T>.

Take(CancellationToken)

Rimuove un elemento dal BlockingCollection<T>.

TakeFromAny(BlockingCollection<T>[], T)

Accetta un elemento da una delle istanze di BlockingCollection<T> specificate.

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

Accetta un elemento da una qualsiasi delle istanze di BlockingCollection<T> specificate durante l'osservazione del token di annullamento specificato.

ToArray()

Copia gli elementi dall'istanza di BlockingCollection<T> in una nuova matrice.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TryAdd(T)

Prova ad aggiungere l'elemento specificato al BlockingCollection<T>.

TryAdd(T, Int32)

Tenta di aggiungere l'elemento specificato al BlockingCollection<T> entro il periodo di tempo specificato.

TryAdd(T, Int32, CancellationToken)

Prova ad aggiungere l'elemento specificato al BlockingCollection<T> entro il periodo di tempo specificato, osservando un token di annullamento.

TryAdd(T, TimeSpan)

Prova ad aggiungere l'elemento specificato al BlockingCollection<T>.

TryAddToAny(BlockingCollection<T>[], T)

Tenta di aggiungere l'elemento specificato a una delle istanze di BlockingCollection<T> specificate.

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

Tenta di aggiungere l'elemento specificato a una delle istanze di BlockingCollection<T> specificate.

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

Tenta di aggiungere l'elemento specificato a una delle istanze di BlockingCollection<T> specificate.

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

Tenta di aggiungere l'elemento specificato a una delle istanze di BlockingCollection<T> specificate osservando il token di annullamento specificato.

TryTake(T)

Tenta di rimuovere un elemento dal BlockingCollection<T>.

TryTake(T, Int32)

Prova a rimuovere un elemento dal BlockingCollection<T> nel periodo di tempo specificato.

TryTake(T, Int32, CancellationToken)

Prova a rimuovere un elemento dal BlockingCollection<T> nel periodo di tempo specificato durante l'osservazione di un token di annullamento.

TryTake(T, TimeSpan)

Prova a rimuovere un elemento dal BlockingCollection<T> nel periodo di tempo specificato.

TryTakeFromAny(BlockingCollection<T>[], T)

Tenta di rimuovere un elemento da una delle istanze di BlockingCollection<T> specificate.

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

Tenta di rimuovere un elemento da una delle istanze di BlockingCollection<T> specificate.

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

Tenta di rimuovere un elemento da una delle istanze di BlockingCollection<T> specificate.

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

Tenta di rimuovere un elemento da una delle istanze di BlockingCollection<T> specificate.

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

Copia tutti gli elementi nell'istanza di BlockingCollection<T> in una matrice unidimensionale compatibile, a partire dall'indice specificato della matrice di destinazione.

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso al ICollection è sincronizzato (thread-safe).

ICollection.SyncRoot

Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso al ICollection. Questa proprietà non è supportata.

IEnumerable.GetEnumerator()

Fornisce un IEnumerator per gli elementi nella raccolta.

IEnumerable<T>.GetEnumerator()

Fornisce un IEnumerator<T> per gli elementi nella raccolta.

Metodi di estensione

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

Crea un FrozenDictionary<TKey,TValue> da un IEnumerable<T> in base alla funzione del selettore di chiave specificata.

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

Crea un FrozenDictionary<TKey,TValue> da un IEnumerable<T> in base ai selettori di chiave e alle funzioni del selettore di elementi specificati.

ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>)

Crea un FrozenSet<T> con i valori specificati.

ToImmutableArray<TSource>(IEnumerable<TSource>)

Crea una matrice non modificabile dalla raccolta specificata.

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

Costruisce un dizionario non modificabile da una raccolta esistente di elementi, applicando una funzione di trasformazione alle chiavi di origine.

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

Costruisce un dizionario non modificabile in base a una trasformazione di una sequenza.

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

Enumera e trasforma una sequenza e produce un dizionario non modificabile del relativo contenuto.

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

Enumera e trasforma una sequenza e produce un dizionario non modificabile del relativo contenuto usando l'operatore di confronto di chiavi specificato.

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

Enumera e trasforma una sequenza e produce un dizionario non modificabile del relativo contenuto usando gli strumenti di confronto chiave e valore specificati.

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

Enumera una sequenza e produce un set di hash non modificabile del relativo contenuto.

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

Enumera una sequenza, produce un set di hash non modificabile del relativo contenuto e usa l'operatore di confronto di uguaglianza specificato per il tipo di set.

ToImmutableList<TSource>(IEnumerable<TSource>)

Enumera una sequenza e produce un elenco non modificabile del relativo contenuto.

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

Enumera e trasforma una sequenza e produce un dizionario ordinato non modificabile del relativo contenuto.

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

Enumera e trasforma una sequenza e produce un dizionario ordinato non modificabile del relativo contenuto usando l'operatore di confronto di chiavi specificato.

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

Enumera e trasforma una sequenza e produce un dizionario ordinato non modificabile del relativo contenuto usando gli strumenti di confronto chiave e valore specificati.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

Enumera una sequenza e produce un set ordinato non modificabile del relativo contenuto.

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

Enumera una sequenza, produce un set ordinato non modificabile del relativo contenuto e usa l'operatore di confronto specificato.

CopyToDataTable<T>(IEnumerable<T>)

Restituisce un DataTable che contiene copie degli oggetti DataRow, dato un oggetto IEnumerable<T> di input in cui il parametro generico T è DataRow.

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

Copia DataRow oggetti nel DataTablespecificato, dato un oggetto IEnumerable<T> di input in cui il parametro generico T è DataRow.

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

Copia DataRow oggetti nel DataTablespecificato, dato un oggetto IEnumerable<T> di input in cui il parametro generico T è DataRow.

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

Applica una funzione di enumeratore su una sequenza.

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

Applica una funzione di enumeratore su una sequenza. Il valore di inizializzazione specificato viene utilizzato come valore dell'caricabatterie iniziale.

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

Applica una funzione di enumeratore su una sequenza. Il valore di inizializzazione specificato viene utilizzato come valore dell'accumulatore iniziale e la funzione specificata viene usata per selezionare il valore del risultato.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Fornisce funzionalità di blocco e del delimitazione per le raccolte thread-safe che implementano IProducerConsumerCollection<T>.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Fornisce funzionalità di blocco e del delimitazione per le raccolte thread-safe che implementano IProducerConsumerCollection<T>.

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

Determina se tutti gli elementi di una sequenza soddisfano una condizione.

Any<TSource>(IEnumerable<TSource>)

Determina se una sequenza contiene elementi.

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

Determina se un elemento di una sequenza soddisfa una condizione.

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

Aggiunge un valore alla fine della sequenza.

AsEnumerable<TSource>(IEnumerable<TSource>)

Restituisce l'input tipizzato come IEnumerable<T>.

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

Calcola la media di una sequenza di valori Decimal ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori Double ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori Int32 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori Int64 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori nullable Decimal ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori nullable Double ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori nullable Int32 ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori nullable Int64 ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori nullable Single ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input.

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

Calcola la media di una sequenza di valori Single ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un IEnumerable al tipo specificato.

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

Suddivide gli elementi di una sequenza in blocchi di dimensioni al massimo size.

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

Concatena due sequenze.

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

Determina se una sequenza contiene un elemento specificato utilizzando l'operatore di confronto di uguaglianza predefinito.

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

Determina se una sequenza contiene un elemento specificato utilizzando un IEqualityComparer<T>specificato.

Count<TSource>(IEnumerable<TSource>)

Restituisce il numero di elementi in una sequenza.

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

Restituisce un numero che rappresenta il numero di elementi nella sequenza specificata che soddisfano una condizione.

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

Fornisce funzionalità di blocco e del delimitazione per le raccolte thread-safe che implementano IProducerConsumerCollection<T>.

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Restituisce gli elementi della sequenza specificata o il valore predefinito del parametro di tipo in un insieme singleton se la sequenza è vuota.

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

Restituisce gli elementi della sequenza specificata o il valore specificato in una raccolta singleton se la sequenza è vuota.

Distinct<TSource>(IEnumerable<TSource>)

Restituisce elementi distinti da una sequenza utilizzando l'operatore di confronto di uguaglianza predefinito per confrontare i valori.

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

Restituisce elementi distinti da una sequenza utilizzando un IEqualityComparer<T> specificato per confrontare i valori.

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

Restituisce elementi distinti da una sequenza in base a una funzione del selettore di chiave specificata.

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

Restituisce elementi distinti da una sequenza in base a una funzione del selettore di chiave specificata e utilizzando un operatore di confronto specificato per confrontare le chiavi.

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

Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza.

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

Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza.

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

Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza o un valore predefinito se l'indice non è compreso nell'intervallo.

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

Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza o un valore predefinito se l'indice non è compreso nell'intervallo.

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

Produce la differenza di set di due sequenze usando l'operatore di confronto di uguaglianza predefinito per confrontare i valori.

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

Produce la differenza di set di due sequenze usando il IEqualityComparer<T> specificato per confrontare i valori.

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

Produce la differenza di set di due sequenze in base a una funzione del selettore di chiave specificata.

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

Produce la differenza di set di due sequenze in base a una funzione del selettore di chiave specificata.

First<TSource>(IEnumerable<TSource>)

Restituisce il primo elemento di una sequenza.

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

Restituisce il primo elemento di una sequenza che soddisfa una condizione specificata.

FirstOrDefault<TSource>(IEnumerable<TSource>)

Restituisce il primo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi.

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

Restituisce il primo elemento di una sequenza o un valore predefinito specificato se la sequenza non contiene elementi.

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

Restituisce il primo elemento della sequenza che soddisfa una condizione o un valore predefinito se non viene trovato alcun elemento di questo tipo.

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

Restituisce il primo elemento della sequenza che soddisfa una condizione o un valore predefinito specificato se non viene trovato alcun elemento di questo tipo.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e confronta le chiavi usando un operatore di confronto specificato.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e proietta gli elementi per ogni gruppo usando una funzione specificata.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave. Le chiavi vengono confrontate usando un operatore di confronto e gli elementi di ogni gruppo vengono proiettati usando una funzione specificata.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave. Le chiavi vengono confrontate usando un operatore di confronto specificato.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave. Gli elementi di ogni gruppo vengono proiettati usando una funzione specificata.

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

Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave. I valori chiave vengono confrontati usando un operatore di confronto specificato e gli elementi di ogni gruppo vengono proiettati usando una funzione specificata.

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

Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati. L'operatore di confronto di uguaglianza predefinito viene usato per confrontare le chiavi.

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

Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati. Viene usato un IEqualityComparer<T> specificato per confrontare le chiavi.

Index<TSource>(IEnumerable<TSource>)

Restituisce un enumerabile che incorpora l'indice dell'elemento in una tupla.

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

Produce l'intersezione set di due sequenze usando l'operatore di confronto di uguaglianza predefinito per confrontare i valori.

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

Produce l'intersezione set di due sequenze utilizzando il IEqualityComparer<T> specificato per confrontare i valori.

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

Produce l'intersezione set di due sequenze in base a una funzione del selettore di chiave specificata.

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

Produce l'intersezione set di due sequenze in base a una funzione del selettore di chiave specificata.

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

Correla gli elementi di due sequenze in base alle chiavi corrispondenti. L'operatore di confronto di uguaglianza predefinito viene usato per confrontare le chiavi.

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

Correla gli elementi di due sequenze in base alle chiavi corrispondenti. Viene usato un IEqualityComparer<T> specificato per confrontare le chiavi.

Last<TSource>(IEnumerable<TSource>)

Restituisce l'ultimo elemento di una sequenza.

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

Restituisce l'ultimo elemento di una sequenza che soddisfa una condizione specificata.

LastOrDefault<TSource>(IEnumerable<TSource>)

Restituisce l'ultimo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi.

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

Restituisce l'ultimo elemento di una sequenza o un valore predefinito specificato se la sequenza non contiene elementi.

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

Restituisce l'ultimo elemento di una sequenza che soddisfa una condizione o un valore predefinito se non viene trovato alcun elemento di questo tipo.

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

Restituisce l'ultimo elemento di una sequenza che soddisfa una condizione o un valore predefinito specificato se non viene trovato alcun elemento di questo tipo.

LongCount<TSource>(IEnumerable<TSource>)

Restituisce un Int64 che rappresenta il numero totale di elementi in una sequenza.

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

Restituisce un Int64 che rappresenta il numero di elementi in una sequenza che soddisfano una condizione.

Max<TSource>(IEnumerable<TSource>)

Restituisce il valore massimo in una sequenza generica.

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

Restituisce il valore massimo in una sequenza generica.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Decimal.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Double.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int32.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int64.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Decimal.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Double.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int32.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int64.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Single.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Single.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza generica e restituisce il valore massimo risultante.

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

Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave specificata.

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

Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificato.

Min<TSource>(IEnumerable<TSource>)

Restituisce il valore minimo in una sequenza generica.

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

Restituisce il valore minimo in una sequenza generica.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Decimal.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Double.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Int32.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Int64.

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

Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Decimal.

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

Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Double.

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

Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Int32.

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

Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Int64.

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

Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Single.

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

Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Single.

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

Richiama una funzione di trasformazione per ogni elemento di una sequenza generica e restituisce il valore minimo risultante.

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

Restituisce il valore minimo in una sequenza generica in base a una funzione del selettore di chiave specificata.

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

Restituisce il valore minimo in una sequenza generica in base a una funzione del selettore di chiave e all'operatore di confronto dei tasti specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un IEnumerable in base a un tipo specificato.

Order<T>(IEnumerable<T>)

Ordina gli elementi di una sequenza in ordine crescente.

Order<T>(IEnumerable<T>, IComparer<T>)

Ordina gli elementi di una sequenza in ordine crescente.

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

Ordina gli elementi di una sequenza in ordine crescente in base a una chiave.

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

Ordina gli elementi di una sequenza in ordine crescente usando un operatore di confronto specificato.

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

Ordina gli elementi di una sequenza in ordine decrescente in base a una chiave.

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

Ordina gli elementi di una sequenza in ordine decrescente usando un operatore di confronto specificato.

OrderDescending<T>(IEnumerable<T>)

Ordina gli elementi di una sequenza in ordine decrescente.

OrderDescending<T>(IEnumerable<T>, IComparer<T>)

Ordina gli elementi di una sequenza in ordine decrescente.

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

Aggiunge un valore all'inizio della sequenza.

Reverse<TSource>(IEnumerable<TSource>)

Inverte l'ordine degli elementi in una sequenza.

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

Proietta ogni elemento di una sequenza in un nuovo form.

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

Proietta ogni elemento di una sequenza in un nuovo form incorporando l'indice dell'elemento.

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

Proietta ogni elemento di una sequenza in un IEnumerable<T> e rende flat le sequenze risultanti in un'unica sequenza.

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

Proietta ogni elemento di una sequenza in un IEnumerable<T>e rende flat le sequenze risultanti in una sola sequenza. L'indice di ogni elemento di origine viene utilizzato nella forma proiettata di tale elemento.

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

Proietta ogni elemento di una sequenza in un IEnumerable<T>, rende flat le sequenze risultanti in una sequenza e richiama una funzione del selettore di risultati in ogni elemento.

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

Proietta ogni elemento di una sequenza in un IEnumerable<T>, rende flat le sequenze risultanti in una sequenza e richiama una funzione del selettore di risultati in ogni elemento. L'indice di ogni elemento di origine viene utilizzato nella forma intermedia proiettata di tale elemento.

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

Determina se due sequenze sono uguali confrontando gli elementi usando l'operatore di confronto di uguaglianza predefinito per il tipo.

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

Determina se due sequenze sono uguali confrontando i relativi elementi utilizzando un IEqualityComparer<T>specificato.

Single<TSource>(IEnumerable<TSource>)

Restituisce l'unico elemento di una sequenza e genera un'eccezione se non è presente esattamente un elemento nella sequenza.

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

Restituisce l'unico elemento di una sequenza che soddisfa una condizione specificata e genera un'eccezione se esiste più di un elemento di questo tipo.

SingleOrDefault<TSource>(IEnumerable<TSource>)

Restituisce l'unico elemento di una sequenza o un valore predefinito se la sequenza è vuota; questo metodo genera un'eccezione se nella sequenza sono presenti più elementi.

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

Restituisce l'unico elemento di una sequenza o un valore predefinito specificato se la sequenza è vuota; questo metodo genera un'eccezione se nella sequenza sono presenti più elementi.

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

Restituisce l'unico elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se tale elemento non esiste; questo metodo genera un'eccezione se più di un elemento soddisfa la condizione.

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

Restituisce l'unico elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito specificato se tale elemento non esiste; questo metodo genera un'eccezione se più di un elemento soddisfa la condizione.

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

Ignora un numero specificato di elementi in una sequenza e quindi restituisce gli elementi rimanenti.

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

Restituisce una nuova raccolta enumerabile che contiene gli elementi di source con gli ultimi elementi count della raccolta di origine omessi.

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

Ignora gli elementi in una sequenza purché una condizione specificata sia true e quindi restituisca gli elementi rimanenti.

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

Ignora gli elementi in una sequenza purché una condizione specificata sia true e quindi restituisca gli elementi rimanenti. L'indice dell'elemento viene usato nella logica della funzione predicato.

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

Calcola la somma della sequenza di Decimal valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di Double valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di Int32 valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di Int64 valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di valori nullable Decimal ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di valori nullable Double ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di valori nullable Int32 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di valori nullable Int64 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di valori nullable Single ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Calcola la somma della sequenza di Single valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input.

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

Restituisce un numero specificato di elementi contigui dall'inizio di una sequenza.

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

Restituisce un intervallo specificato di elementi contigui da una sequenza.

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

Restituisce una nuova raccolta enumerabile che contiene gli ultimi elementi count di source.

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

Restituisce elementi da una sequenza purché una condizione specificata sia true.

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

Restituisce elementi da una sequenza purché una condizione specificata sia true. L'indice dell'elemento viene usato nella logica della funzione predicato.

ToArray<TSource>(IEnumerable<TSource>)

Crea una matrice da un IEnumerable<T>.

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

Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base a una funzione del selettore di chiave specificata.

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

Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificati.

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

Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base ai selettori di chiave e alle funzioni del selettore di elementi specificati.

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

Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base a una funzione del selettore di chiave, a un operatore di confronto e a una funzione del selettore di elementi.

ToHashSet<TSource>(IEnumerable<TSource>)

Crea un HashSet<T> da un IEnumerable<T>.

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

Crea un HashSet<T> da un IEnumerable<T> usando il comparer per confrontare le chiavi.

ToList<TSource>(IEnumerable<TSource>)

Crea un List<T> da un IEnumerable<T>.

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

Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base a una funzione del selettore di chiave specificata.

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

Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificati.

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

Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base ai selettori di chiave e alle funzioni del selettore di elementi specificati.

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

Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base a una funzione del selettore di chiave specificata, un operatore di confronto e una funzione selettore di elementi.

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

Tenta di determinare il numero di elementi in una sequenza senza forzare un'enumerazione.

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

Produce l'unione di set di due sequenze usando l'operatore di confronto di uguaglianza predefinito.

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

Produce l'unione set di due sequenze utilizzando un IEqualityComparer<T>specificato.

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

Produce l'unione di set di due sequenze in base a una funzione del selettore di chiave specificata.

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

Produce l'unione di set di due sequenze in base a una funzione del selettore di chiave specificata.

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

Filtra una sequenza di valori in base a un predicato.

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

Filtra una sequenza di valori in base a un predicato. L'indice di ogni elemento viene usato nella logica della funzione predicato.

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

Produce una sequenza di tuple con elementi delle due sequenze specificate.

Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Produce una sequenza di tuple con elementi delle tre sequenze specificate.

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

Applica una funzione specificata agli elementi corrispondenti di due sequenze, generando una sequenza dei risultati.

AsParallel(IEnumerable)

Abilita la parallelizzazione di una query.

AsParallel<TSource>(IEnumerable<TSource>)

Abilita la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un IEnumerable in un IQueryable.

AsQueryable<TElement>(IEnumerable<TElement>)

Converte un IEnumerable<T> generico in un IQueryable<T>generico.

Ancestors<T>(IEnumerable<T>)

Restituisce una raccolta di elementi che contiene i predecessori di ogni nodo nella raccolta di origine.

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

Restituisce una raccolta filtrata di elementi che contiene i predecessori di ogni nodo nella raccolta di origine. Nella raccolta sono inclusi solo gli elementi con un XName corrispondente.

DescendantNodes<T>(IEnumerable<T>)

Restituisce una raccolta dei nodi discendenti di ogni documento e elemento nella raccolta di origine.

Descendants<T>(IEnumerable<T>)

Restituisce una raccolta di elementi che contiene gli elementi discendenti di ogni elemento e documento nella raccolta di origine.

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

Restituisce una raccolta filtrata di elementi che contiene gli elementi discendenti di ogni elemento e documento nella raccolta di origine. Nella raccolta sono inclusi solo gli elementi con un XName corrispondente.

Elements<T>(IEnumerable<T>)

Restituisce un insieme degli elementi figlio di ogni elemento e documento nella raccolta di origine.

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

Restituisce una raccolta filtrata degli elementi figlio di ogni elemento e documento nella raccolta di origine. Nella raccolta sono inclusi solo gli elementi con un XName corrispondente.

InDocumentOrder<T>(IEnumerable<T>)

Restituisce una raccolta di nodi che contiene tutti i nodi della raccolta di origine, ordinati in base all'ordine dei documenti.

Nodes<T>(IEnumerable<T>)

Restituisce una raccolta dei nodi figlio di ogni documento e elemento nella raccolta di origine.

Remove<T>(IEnumerable<T>)

Rimuove ogni nodo nella raccolta di origine dal nodo padre.

Si applica a

Thread safety

Il metodo Dispose non è thread-safe. Tutti gli altri membri pubblici e protetti di BlockingCollection<T> sono thread-safe e possono essere usati simultaneamente da più thread.

Vedi anche