BlockingCollection<T> Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce funzionalità di blocco e limitazione 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 contenuti 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:
Implementazione del modello producer/consumer; BlockingCollection<T> è un wrapper per l'interfaccia IProducerConsumerCollection<T> .
Aggiunta e rimozione simultanea di elementi da più thread con i Add metodi e Take .
Raccolta delimitata che blocca Add e Take esegue operazioni quando la raccolta è piena o vuota.
Annullamento di Add operazioni o Take utilizzando un CancellationToken oggetto nel TryAdd metodo o TryTake .
Importante
Il tipo implementa l'interfaccia IDisposable. Dopo aver utilizzato il tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il metodo Dispose in un blocco try
/catch
. Per eliminarlo indirettamente, utilizzare un costrutto di linguaggio come 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 Dispose() metodo non è thread-safe. Tutti gli altri membri pubblici e protetti di BlockingCollection<T> sono thread-safe e possono essere usati contemporaneamente da più thread.
IProducerConsumerCollection<T> rappresenta una raccolta che consente l'aggiunta e la rimozione thread-safe dei dati. BlockingCollection<T> viene usato come wrapper per un'istanza IProducerConsumerCollection<T> di e consente di bloccare i tentativi di rimozione dalla raccolta fino a quando i dati non sono disponibili per la rimozione. Analogamente, è possibile creare un BlockingCollection<T> oggetto per applicare un limite superiore al numero di elementi di dati consentiti in IProducerConsumerCollection<T>. I tentativi di aggiunta alla raccolta possono quindi bloccare 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 delimitazione e blocco. Il delimitazione significa che è possibile impostare la capacità massima della raccolta. Il delimitazione è importante in determinati scenari perché consente di controllare la dimensione massima 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 verranno bloccati fino a quando non viene rimosso un elemento. Più Consumer possono rimuovere contemporaneamente elementi e quando la raccolta diventa vuota, i thread Consumer si bloccano fino a quando un Producer aggiunge un elemento. Un thread di produzione può chiamare il CompleteAdding metodo 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.
Add le operazioni e Take vengono in genere eseguite in un ciclo. È possibile annullare un ciclo passando un CancellationToken oggetto al TryAdd metodo o TryTake e quindi controllando il valore della proprietà del IsCancellationRequested token in ogni iterazione. Se il valore è true
, è possibile rispondere alla richiesta di annullamento eliminando le risorse e chiudendo il ciclo.
Quando si crea un BlockingCollection<T> oggetto, è possibile specificare non solo la capacità associata, ma anche il tipo di raccolta da usare. Ad esempio, è possibile specificare un oggetto ConcurrentQueue<T> per il comportamento FIFO (First In, First Out) o un oggetto ConcurrentStack<T> per il comportamento LIFO (Last In, First Out). È 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. Usare BlockingCollection<T> i 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 con l'accesso asincrono in mente. Se l'applicazione richiede scenari producer/consumer asincroni, prendere in considerazione l'uso 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 usando l'oggetto 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 usando l'oggetto IProducerConsumerCollection<T> fornito come archivio dati sottostante. |
Proprietà
BoundedCapacity |
Ottiene un valore che indica la capacità delimitata di questa istanza di BlockingCollection<T>. |
Count |
Ottiene il numero di elementi contenuti nella classe BlockingCollection<T>. |
IsAddingCompleted |
Ottiene un valore che indica se questo oggetto BlockingCollection<T> è stato contrassegnato come completo per l'aggiunta. |
IsCompleted |
Ottiene un valore che indica se questo oggetto BlockingCollection<T> è stato contrassegnato come completo per l'aggiunta ed è vuoto. |
Metodi
Add(T) |
Aggiunge l'elemento all'oggetto BlockingCollection<T>. |
Add(T, CancellationToken) |
Aggiunge l'elemento all'oggetto BlockingCollection<T>. |
AddToAny(BlockingCollection<T>[], T) |
Aggiunge l'elemento specificato a una qualsiasi delle istanze di BlockingCollection<T> specificate. |
AddToAny(BlockingCollection<T>[], T, CancellationToken) |
Aggiunge l'elemento specificato a una qualsiasi delle istanze di BlockingCollection<T> specificate. |
CompleteAdding() |
Contrassegna le istanze di BlockingCollection<T> per non accettare più alcuna aggiunta. |
CopyTo(T[], Int32) |
Copia tutti gli elementi dell'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 risorse usate dall'istanza di BlockingCollection<T>. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetConsumingEnumerable() |
Fornisce un oggetto IEnumerable<T> usato per gli elementi nella raccolta. |
GetConsumingEnumerable(CancellationToken) |
Fornisce un oggetto IEnumerable<T> usato per gli elementi nella raccolta. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Take() |
Rimuove un elemento da BlockingCollection<T>. |
Take(CancellationToken) |
Rimuove un elemento da BlockingCollection<T>. |
TakeFromAny(BlockingCollection<T>[], T) |
Preleva un elemento da una delle istanze di BlockingCollection<T> specificate. |
TakeFromAny(BlockingCollection<T>[], T, CancellationToken) |
Preleva un elemento da una delle istanze di BlockingCollection<T> specificate considerando il 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 a BlockingCollection<T>. |
TryAdd(T, Int32) |
Prova ad aggiungere l'elemento specificato a BlockingCollection<T> nel periodo di tempo specificato. |
TryAdd(T, Int32, CancellationToken) |
Prova ad aggiungere l'elemento specificato a BlockingCollection<T> nel periodo di tempo specificato, considerando un token di annullamento. |
TryAdd(T, TimeSpan) |
Prova ad aggiungere l'elemento specificato a BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T) |
Prova ad aggiungere l'elemento specificato a una delle istanze specifiche di BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, Int32) |
Prova ad aggiungere l'elemento specificato a una delle istanze specifiche di BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Prova ad aggiungere l'elemento specificato a una delle istanze specifiche di BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, TimeSpan) |
Prova ad aggiungere l'elemento specificato a una delle istanze di BlockingCollection<T> specificate considerando il token di annullamento specificato. |
TryTake(T) |
Prova a rimuovere un elemento da BlockingCollection<T>. |
TryTake(T, Int32) |
Prova rimuovere un elemento da BlockingCollection<T> entro il periodo di tempo specificato. |
TryTake(T, Int32, CancellationToken) |
Prova a rimuovere un elemento da BlockingCollection<T> nel periodo di tempo specificato, considerando un token di annullamento. |
TryTake(T, TimeSpan) |
Prova rimuovere un elemento da BlockingCollection<T> entro il periodo di tempo specificato. |
TryTakeFromAny(BlockingCollection<T>[], T) |
Prova a rimuovere un elemento da una delle istanze specifiche di BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Prova a rimuovere un elemento da una delle istanze specifiche di BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Prova a rimuovere un elemento da una delle istanze specifiche di BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Prova a rimuovere un elemento da una delle istanze specifiche di BlockingCollection<T>. |
Implementazioni dell'interfaccia esplicita
ICollection.CopyTo(Array, Int32) |
Copia tutti gli elementi dell'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 a ICollection è sincronizzato (thread-safe). |
ICollection.SyncRoot |
Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection. Questa proprietà non è supportata. |
IEnumerable.GetEnumerator() |
Fornisce un oggetto IEnumerator per gli elementi nella raccolta. |
IEnumerable<T>.GetEnumerator() |
Fornisce un oggetto 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> oggetto da un IEnumerable<T> oggetto 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 oggetto FrozenDictionary<TKey,TValue> da un oggetto IEnumerable<T> secondo le funzioni specificate del selettore principale e del selettore di elementi. |
ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>) |
Crea un FrozenSet<T> oggetto 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 di elementi esistente, applicando una funzione di trasformazione alle chiavi di origine. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Costruisce un dizionario non modificabile basato su 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 della chiave 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 operatori di confronto della chiave e del 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 della chiave 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 operatori di confronto della chiave e del 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 oggetto DataTable che contiene copie degli oggetti DataRow, dato un oggetto IEnumerable<T> di input dove il parametro generico DataRow è |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Copia gli oggetti DataRow nell'oggetto DataTable specificato, dato un oggetto IEnumerable<T> di input dove il parametro generico |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Copia gli oggetti DataRow nell'oggetto DataTable specificato, dato un oggetto IEnumerable<T> di input dove il parametro generico |
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Applica una funzione accumulatore a una sequenza. |
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Applica una funzione accumulatore a una sequenza. Il valore di inizializzazione specificato viene usato come valore iniziale dell'accumulatore. |
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Applica una funzione accumulatore a una sequenza. Il valore di inizializzazione specificato viene usato come valore iniziale dell'accumulatore e la funzione specificata viene usata per selezionare il valore risultante. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Fornisce funzionalità di blocco e limitazione 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 limitazione 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 un qualsiasi elemento di una sequenza soddisfa una condizione. |
Append<TSource>(IEnumerable<TSource>, TSource) |
Accoda un valore alla fine della sequenza. |
AsEnumerable<TSource>(IEnumerable<TSource>) |
Restituisce l'input tipizzato come oggetto IEnumerable<T>. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcola la media di una sequenza di valori Decimal ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcola la media di una sequenza di valori Double ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcola la media di una sequenza di valori Int32 ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcola la media di una sequenza di valori Int64 ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcola la media di una sequenza di valori Decimal nullable ottenuti chiamando 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 Double nullable ottenuti chiamando 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 Int32 nullable ottenuti chiamando 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 Int64 nullable ottenuti chiamando 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 Single nullable ottenuti chiamando 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 chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
Chunk<TSource>(IEnumerable<TSource>, Int32) |
Suddivide gli elementi di una sequenza in blocchi di dimensioni al massimo |
Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Concatena due sequenze. |
Contains<TSource>(IEnumerable<TSource>, TSource) |
Determina se una sequenza contiene uno specifico elemento utilizzando l'operatore di confronto uguaglianze predefinito. |
Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
Determina se una sequenza contiene un elemento specificato utilizzando un oggetto IEqualityComparer<T> specificato. |
Count<TSource>(IEnumerable<TSource>) |
Restituisce il numero di elementi in una sequenza. |
Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce un valore 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 limitazione 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 una raccolta di singleton se la sequenza è vuota. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Restituisce gli elementi della sequenza specificata o il valore specificato in una raccolta di singleton se la sequenza è vuota. |
Distinct<TSource>(IEnumerable<TSource>) |
Restituisce elementi distinti da una sequenza utilizzando l'operatore di confronto uguaglianze predefinito per confrontare i valori. |
Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Restituisce elementi distinti da una sequenza utilizzando uno specificato IEqualityComparer<T> per confrontare valori. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Restituisce elementi distinti da una sequenza in base a una funzione del selettore di chiavi 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 chiavi specificata e utilizzando un operatore di confronto specificato per confrontare le chiavi. |
ElementAt<TSource>(IEnumerable<TSource>, Index) |
Restituisce l'elemento in corrispondenza dell’indice specificato in una sequenza. |
ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Restituisce l'elemento in corrispondenza dell’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 è esterno all'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 è esterno all'intervallo. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produce la differenza insiemistica di due sequenze utilizzando l'operatore di confronto eguaglianze predefinito per confrontare i valori. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produce la differenza insiemistica delle due sequenze utilizzando l’oggetto 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 tasti 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 tasti specificata. |
First<TSource>(IEnumerable<TSource>) |
Restituisce il primo elemento di una sequenza. |
First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce il primo elemento in 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 specificata o un valore predefinito se tale elemento non viene trovato. |
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 secondo una specificata funzione del selettore principale. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Raggruppa gli elementi di una sequenza secondo una specificata funzione del selettore principale e confronta le chiavi utilizzando 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 specificata del selettore principale e proietta gli elementi di ogni gruppo utilizzando una funzione specificata. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Raggruppa gli elementi di una sequenza secondo una specificata funzione del selettore principale. 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 principale specificata e crea un valore risultante da ciascun gruppo e 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 principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave. Le chiavi vengono confrontati 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 principale specificata e crea un valore risultante da ciascun gruppo e 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 principale specificata e crea un valore risultante da ciascun gruppo e relativa chiave. I valori delle chiavi 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. Per confrontare le chiavi viene usato l'operatore di confronto uguaglianze predefinito. |
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. Per confrontare le chiavi, viene usato un oggetto IEqualityComparer<T> specificato. |
Index<TSource>(IEnumerable<TSource>) |
Fornisce funzionalità di blocco e limitazione per le raccolte thread-safe che implementano IProducerConsumerCollection<T>. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produce l’intersezione insiemistica di due sequenze utilizzando l'operatore di confronto uguaglianze predefinito per confrontare i valori. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produce l’intersezione insiemistica delle due sequenze utilizzando l’oggetto 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 tasti 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 tasti 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. Per confrontare le chiavi viene usato l'operatore di confronto uguaglianze predefinito. |
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. Per confrontare le chiavi, viene usato un oggetto IEqualityComparer<T> specificato. |
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 specificata o un valore predefinito se tale elemento non viene trovato. |
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 oggetto Int64 che rappresenta il numero totale di elementi in una sequenza. |
LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce un oggetto Int64 che rappresenta quanti elementi in una sequenza 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 Decimal massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Double massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Int32 massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Int64 massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Decimal massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Double massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Int32 massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Int64 massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Single massimo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Single massimo. |
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Richiama una funzione di trasformazione su ogni elemento di una generica sequenza 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 chiavi e a un operatore di confronto chiave specificati. |
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 Decimal minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Double minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Int32 minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Int64 minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Decimal minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Double minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Int32 minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Int64 minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore nullable Single minimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore Single minimo. |
Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Richiama una funzione di trasformazione su ogni elemento di una generica sequenza 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 chiavi e a un operatore di confronto chiave specificati. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
Order<T>(IEnumerable<T>) |
Ordina in senso crescente gli elementi di una sequenza. |
Order<T>(IEnumerable<T>, IComparer<T>) |
Ordina in senso crescente gli elementi di una sequenza. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Ordina in senso crescente gli elementi di una sequenza secondo una chiave. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Ordina in ordine crescente gli elementi di una sequenza utilizzando un operatore di confronto specificato. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Ordina in senso decrescente gli elementi di una sequenza secondo una chiave. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Ordina in senso decrescente gli elementi di una sequenza usando un operatore di confronto specificato. |
OrderDescending<T>(IEnumerable<T>) |
Ordina in senso decrescente gli elementi di una sequenza. |
OrderDescending<T>(IEnumerable<T>, IComparer<T>) |
Ordina in senso decrescente gli elementi di una sequenza. |
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 modulo incorporando l'indice dell'elemento. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
Proietta ogni elemento di una sequenza a un oggetto IEnumerable<T> e semplifica le sequenze risultanti in un’unica sequenza. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
Proietta ogni elemento di una sequenza a un oggetto IEnumerable<T> e semplifica le sequenze risultanti in un’unica sequenza. L'indice di ogni elemento di origine viene usato nella maschera proiettata di tale elemento. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Proietta ogni elemento di una sequenza a un oggetto IEnumerable<T>, semplifica le sequenze risultanti in un'unica sequenza e richiama una funzione del selettore di risultato su ogni elemento al suo interno. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Proietta ogni elemento di una sequenza a un oggetto IEnumerable<T>, semplifica le sequenze risultanti in un'unica sequenza e richiama una funzione del selettore di risultato su ogni elemento al suo interno. L'indice di ogni elemento di origine viene usato nella maschera intermedia proiettata di tale elemento. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Determina se due sequenze sono uguali confrontando gli elementi tramite l’uso dell'operatore di confronto uguaglianze predefinito per il loro tipo. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Determina se due sequenze sono uguali confrontando i loro elementi mediante l’uso di un oggetto IEqualityComparer<T> specificato. |
Single<TSource>(IEnumerable<TSource>) |
Restituisce l'unico elemento di una sequenza e genera un'eccezione se nella sequenza non è presente esattamente un elemento. |
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce l'unico elemento di una sequenza che soddisfa una condizione specificata e genera un'eccezione se esistono più elementi di tale tipo. |
SingleOrDefault<TSource>(IEnumerable<TSource>) |
Restituisce il singolo elemento di una sequenza o un valore predefinito se la sequenza è vuota. Questo metodo genera un'eccezione se esiste più di un elemento nella sequenza. |
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 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 |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Ignora gli elementi in sequenza finché la condizione specificata è soddisfatta e quindi restituisce gli elementi rimanenti. L'indice dell'elemento viene usato nella logica della funzione predicativa. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcola la somma della sequenza di valori Decimal ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcola la somma della sequenza di valori Double ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcola la somma della sequenza di valori Int32 ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcola la somma della sequenza di valori Int64 ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcola la somma della sequenza di valori Decimal nullable, ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Calcola la somma della sequenza di valori Double nullable, ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Calcola la somma della sequenza di valori Int32 nullable, ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Calcola la somma della sequenza di valori Int64 nullable, ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Calcola la somma della sequenza di valori Single nullable, ottenuti chiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Calcola la somma della sequenza di valori Single ottenuti chiamando una funzione di trasformazione su 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 |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Restituisce elementi di una sequenza finché una condizione specificata è soddisfatta. L'indice dell'elemento viene usato nella logica della funzione predicativa. |
ToArray<TSource>(IEnumerable<TSource>) |
Crea una matrice da un oggetto IEnumerable<T>. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Crea un oggetto Dictionary<TKey,TValue> da un oggetto IEnumerable<T> secondo una funzione del selettore principale specificata. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Crea un oggetto Dictionary<TKey,TValue> da un oggetto IEnumerable<T> secondo una funzione del selettore principale specificata e un operatore di confronto principale. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Crea un oggetto Dictionary<TKey,TValue> da un oggetto IEnumerable<T> secondo le funzioni specificate del selettore principale e del selettore di elementi. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Crea un oggetto Dictionary<TKey,TValue> da un oggetto IEnumerable<T> secondo una funzione specificata del selettore principale, un operatore di confronto principale e una funzione del selettore di elementi. |
ToHashSet<TSource>(IEnumerable<TSource>) |
Crea un oggetto HashSet<T> da un oggetto IEnumerable<T>. |
ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Crea un oggetto HashSet<T> da un oggetto IEnumerable<T> usando |
ToList<TSource>(IEnumerable<TSource>) |
Crea un oggetto List<T> da un oggetto IEnumerable<T>. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Crea un oggetto Lookup<TKey,TElement> da un oggetto IEnumerable<T> secondo una funzione del selettore principale specificata. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Crea un oggetto Lookup<TKey,TElement> da un oggetto IEnumerable<T> secondo una funzione del selettore principale specificata e un operatore di confronto principale. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Crea un oggetto Lookup<TKey,TElement> da un oggetto IEnumerable<T> secondo le funzioni specificate del selettore principale e del selettore di elementi. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Crea un oggetto Lookup<TKey,TElement> da un oggetto IEnumerable<T> secondo una funzione specificata del selettore principale, un operatore di confronto principale e una funzione del 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 insiemistica delle due sequenze utilizzando l'operatore di confronto uguaglianze predefinito. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produce l'unione insiemistica di due sequenze utilizzando un oggetto 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 tasti 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 tasti 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 gli elementi dalle 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, producendo una sequenza dei risultati. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsParallel<TSource>(IEnumerable<TSource>) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |
AsQueryable<TElement>(IEnumerable<TElement>) |
Converte un generico oggetto IEnumerable<T> in un generico oggetto IQueryable<T>. |
Ancestors<T>(IEnumerable<T>) |
Restituisce una raccolta di elementi che contiene i predecessori di ciascun nodo nella raccolta di origine. |
Ancestors<T>(IEnumerable<T>, XName) |
Restituisce una raccolta di elementi filtrati che contiene i predecessori di ciascun nodo nella raccolta di origine. Solo gli elementi che hanno un oggetto XName corrispondente vengono inclusi nella raccolta. |
DescendantNodes<T>(IEnumerable<T>) |
Restituisce una raccolta di nodi discendenti di ciascun documento ed elemento nella raccolta di origine. |
Descendants<T>(IEnumerable<T>) |
Restituisce una raccolta di elementi che contiene gli elementi discendenti di ciascun elemento e documento nella raccolta di origine. |
Descendants<T>(IEnumerable<T>, XName) |
Restituisce una raccolta filtrata di elementi che contiene gli elementi discendenti di ciascun elemento e documento nella raccolta di origine. Solo gli elementi che hanno un oggetto XName corrispondente vengono inclusi nella raccolta. |
Elements<T>(IEnumerable<T>) |
Restituisce una raccolta di elementi figlio di ciascun elemento e documento nella raccolta di origine. |
Elements<T>(IEnumerable<T>, XName) |
Restituisce una raccolta filtrata degli elementi figlio di ciascun elemento e documento nella raccolta di origine. Solo gli elementi che hanno un oggetto XName corrispondente vengono inclusi nella raccolta. |
InDocumentOrder<T>(IEnumerable<T>) |
Restituisce una raccolta di nodi che contiene tutti i nodi nella raccolta di origine ordinati in base all'ordine con cui sono riportati nel documento. |
Nodes<T>(IEnumerable<T>) |
Restituisce una raccolta di nodi figlio di ciascun documento ed elemento nella raccolta di origine. |
Remove<T>(IEnumerable<T>) |
Rimuove ciascun 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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per