BlockingCollection<T> Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece funcionalidades de bloqueio e delimitação para coleções thread-safe que implementam 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)
Parâmetros de tipo
- T
O tipo dos elementos na coleção.
- Herança
-
BlockingCollection<T>
- Atributos
- Implementações
Exemplos
O exemplo a seguir mostra como adicionar e tirar itens simultaneamente de uma coleção de bloqueio:
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
Comentários
BlockingCollection<T> é uma classe de coleção thread-safe que fornece o seguinte:
Uma implementação do padrão produtor/consumidor; BlockingCollection<T> é um wrapper para a IProducerConsumerCollection<T> interface .
Adição simultânea e remoção de itens de vários threads com os Add métodos e Take .
Uma coleção limitada que bloqueia Add e Take opera quando a coleção está cheia ou vazia.
Cancelamento de Add operações ou Take usando um CancellationToken objeto no TryAdd método ou TryTake .
Importante
Esse tipo implementa a interface IDisposable. Quando você terminar de usar o tipo, deverá descartá-lo direta ou indiretamente. Para descartar o tipo diretamente, chame o método Dispose dele em um bloco try
/catch
. Para descartá-lo indiretamente, use um constructo de linguagem como using
( em C#) ou Using
(em Visual Basic). Saiba mais na seção "Como usar um objeto que implementa IDisposable" no tópico da interface IDisposable. Além disso, observe que o Dispose() método não é thread-safe. Todos os outros membros públicos e protegidos do BlockingCollection<T> são thread-safe e podem ser usados simultaneamente de vários threads.
IProducerConsumerCollection<T> representa uma coleção que permite a adição e a remoção de dados thread-safe. BlockingCollection<T> é usado como um wrapper para uma IProducerConsumerCollection<T> instância e permite que as tentativas de remoção da coleção sejam bloqueadas até que os dados estejam disponíveis para serem removidos. Da mesma forma, você pode criar um BlockingCollection<T> para impor um limite superior no número de elementos de dados permitidos no IProducerConsumerCollection<T>; as tentativas de adição à coleção podem bloquear até que o espaço esteja disponível para armazenar os itens adicionados. Dessa maneira, BlockingCollection<T> é semelhante a uma estrutura de dados de fila de bloqueio tradicional, exceto que o mecanismo de armazenamento de dados subjacente é abstraído como um IProducerConsumerCollection<T>.
BlockingCollection<T> dá suporte à delimitação e ao bloqueio. Alimitação significa que você pode definir a capacidade máxima da coleção. Alimitação é importante em determinados cenários porque permite controlar o tamanho máximo da coleção na memória e impede que os threads produtores se movo muito à frente dos threads de consumo. Vários threads ou tarefas podem adicionar itens à coleção simultaneamente e, se a coleção atingir sua capacidade máxima especificada, os threads produtores serão bloqueados até que um item seja removido. Vários consumidores podem remover itens simultaneamente e, se a coleção ficar vazia, os threads de consumo serão bloqueados até que um produtor adicione um item. Um thread de produção pode chamar o CompleteAdding método para indicar que não serão adicionados mais itens. Os consumidores monitoram a propriedade IsCompleted para saber quando a coleção está vazia e não serão adicionados mais itens.
Add e Take as operações normalmente são executadas em um loop. Você pode cancelar um loop passando um CancellationToken objeto para o TryAdd método ou TryTake e verificando o valor da propriedade do IsCancellationRequested token em cada iteração. Se o valor for true
, cabe a você responder à solicitação de cancelamento limpando todos os recursos e saindo do loop.
Ao criar um BlockingCollection<T> objeto, você pode especificar não apenas a capacidade limitada, mas também o tipo de coleção a ser usada. Por exemplo, seria possível especificar um objeto ConcurrentQueue<T> para o comportamento primeiro a entrar, primeiro a sair (PEPS) ou um objeto ConcurrentStack<T> para último a entrar, primeiro a sair (UEPS). Você pode usar qualquer classe de coleção que implemente a interface IProducerConsumerCollection<T>. O tipo de coleção padrão para BlockingCollection<T> é ConcurrentQueue<T>.
Não modifique a coleção subjacente diretamente. Use BlockingCollection<T> métodos para adicionar ou remover elementos. O BlockingCollection<T> objeto poderá ficar corrompido se você alterar a coleção subjacente diretamente.
BlockingCollection<T> não foi projetado com acesso assíncrono em mente. Se o aplicativo exigir cenários de produtor/consumidor assíncronos, considere usar Channel<T> em vez disso.
Construtores
BlockingCollection<T>() |
Inicializa uma nova instância da classe BlockingCollection<T> sem um limite superior. |
BlockingCollection<T>(Int32) |
Inicializa uma nova instância da classe BlockingCollection<T> com o limite superior especificado. |
BlockingCollection<T>(IProducerConsumerCollection<T>) |
Inicializa uma nova instância da classe BlockingCollection<T> sem um limite superior e usando a IProducerConsumerCollection<T> fornecida como seu armazenamento de dados subjacente. |
BlockingCollection<T>(IProducerConsumerCollection<T>, Int32) |
Inicializa uma nova instância da classe BlockingCollection<T> com o limite superior especificado e usando a IProducerConsumerCollection<T> fornecida como seu repositório de dados subjacente. |
Propriedades
BoundedCapacity |
Obtém a capacidade limitada dessa instância BlockingCollection<T>. |
Count |
Obtém o número de itens contidos no BlockingCollection<T>. |
IsAddingCompleted |
Obtém se esta BlockingCollection<T> foi marcada como completa para adição. |
IsCompleted |
Obtém se esta BlockingCollection<T> foi marcada como completa para a adição e está vazia. |
Métodos
Add(T) |
Adiciona o item ao BlockingCollection<T>. |
Add(T, CancellationToken) |
Adiciona o item ao BlockingCollection<T>. |
AddToAny(BlockingCollection<T>[], T) |
Adiciona o item especificado a qualquer uma das instâncias de BlockingCollection<T> especificadas. |
AddToAny(BlockingCollection<T>[], T, CancellationToken) |
Adiciona o item especificado a qualquer uma das instâncias de BlockingCollection<T> especificadas. |
CompleteAdding() |
Marca que as instâncias de BlockingCollection<T> não estão mais aceitando nenhuma adição. |
CopyTo(T[], Int32) |
Copia todos os itens da instância BlockingCollection<T> para uma matriz unidimensional compatível, iniciando no índice especificado da matriz de destino. |
Dispose() |
Libera todos os recursos usados pela instância atual da classe BlockingCollection<T>. |
Dispose(Boolean) |
Libera os recursos usados pela instância BlockingCollection<T>. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetConsumingEnumerable() |
Fornece um consumindo IEnumerable<T> para itens na coleção. |
GetConsumingEnumerable(CancellationToken) |
Fornece um consumindo IEnumerable<T> para itens na coleção. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
Take() |
Remove um item do BlockingCollection<T>. |
Take(CancellationToken) |
Remove um item do BlockingCollection<T>. |
TakeFromAny(BlockingCollection<T>[], T) |
Toma um item de qualquer uma das instâncias BlockingCollection<T> especificadas. |
TakeFromAny(BlockingCollection<T>[], T, CancellationToken) |
Recebe um item de qualquer uma das instâncias BlockingCollection<T> especificadas, observando ao mesmo tempo o token de cancelamento especificado. |
ToArray() |
Copia os itens da instância BlockingCollection<T> em uma nova matriz. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
TryAdd(T) |
Tenta adicionar o item especificado ao BlockingCollection<T>. |
TryAdd(T, Int32) |
Tenta adicionar o item especificado à BlockingCollection<T> dentro do período de tempo especificado. |
TryAdd(T, Int32, CancellationToken) |
Tenta adicionar o item especificado ao BlockingCollection<T> no período especificado, enquanto observa um token de cancelamento. |
TryAdd(T, TimeSpan) |
Tenta adicionar o item especificado ao BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T) |
Tenta adicionar o item especificado a qualquer uma das instâncias BlockingCollection<T> especificadas. |
TryAddToAny(BlockingCollection<T>[], T, Int32) |
Tenta adicionar o item especificado a qualquer uma das instâncias BlockingCollection<T> especificadas. |
TryAddToAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Tenta adicionar o item especificado a qualquer uma das instâncias BlockingCollection<T> especificadas. |
TryAddToAny(BlockingCollection<T>[], T, TimeSpan) |
Tenta adicionar o item especificado a qualquer uma das instâncias BlockingCollection<T> especificadas, observando ao mesmo tempo o token de cancelamento especificado. |
TryTake(T) |
Tenta remover um item no BlockingCollection<T>. |
TryTake(T, Int32) |
Tenta remover um item do BlockingCollection<T> no período de tempo especificado. |
TryTake(T, Int32, CancellationToken) |
Tenta remover um item do BlockingCollection<T> no período especificado, enquanto observa um token de cancelamento. |
TryTake(T, TimeSpan) |
Tenta remover um item do BlockingCollection<T> no período de tempo especificado. |
TryTakeFromAny(BlockingCollection<T>[], T) |
Tenta remover um item de qualquer uma das instâncias BlockingCollection<T> especificadas. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Tenta remover um item de qualquer uma das instâncias BlockingCollection<T> especificadas. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Tenta remover um item de qualquer uma das instâncias BlockingCollection<T> especificadas. |
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Tenta remover um item de qualquer uma das instâncias BlockingCollection<T> especificadas. |
Implantações explícitas de interface
ICollection.CopyTo(Array, Int32) |
Copia todos os itens da instância BlockingCollection<T> para uma matriz unidimensional compatível, iniciando no índice especificado da matriz de destino. |
ICollection.IsSynchronized |
Obtém um valor que indica se o acesso à ICollection é sincronizado (thread-safe). |
ICollection.SyncRoot |
Obtém um objeto que pode ser usado para sincronizar o acesso ao ICollection. Não há suporte a esta propriedade. |
IEnumerable.GetEnumerator() |
Fornece um IEnumerator para itens na coleção. |
IEnumerable<T>.GetEnumerator() |
Fornece um IEnumerator<T> para itens na coleção. |
Métodos de Extensão
ToFrozenDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Cria um FrozenDictionary<TKey,TValue> de uma IEnumerable<T> função de seletor de chave especificada. |
ToFrozenDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Cria um FrozenDictionary<TKey,TValue> de um IEnumerable<T>, de acordo com as funções especificadas de seletor de chave e seletor de elemento. |
ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>) |
Cria um FrozenSet<T> com os valores especificados. |
ToImmutableArray<TSource>(IEnumerable<TSource>) |
Cria uma matriz imutável com base na coleção especificada. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Constrói um dicionário imutável de uma coleção existente de elementos, aplicando uma função de transformação nas chaves de origem. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Constrói um dicionário imutável com base em alguma transformação de uma sequência. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Enumera e transforma uma sequência e produz um dicionário imutável com base em seu conteúdo. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>) |
Enumera e transforma uma sequência e produz um dicionário imutável com base em seu conteúdo usando o comparador de chave especificado. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>) |
Enumera e transforma uma sequência e produz um dicionário imutável com base em seu conteúdo usando os comparadores de chave e valor especificados. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>) |
Enumera uma sequência e produz um conjunto de hash imutável de seu conteúdo. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Enumera uma sequência, produz um conjunto de hash imutável de seu conteúdo e usa o comparador de igualdade especificado para o tipo de conjunto. |
ToImmutableList<TSource>(IEnumerable<TSource>) |
Enumera uma sequência e produz uma lista imutável de seu conteúdo. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Enumera e transforma uma sequência e produz um dicionário classificado imutável com base em seu conteúdo. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>) |
Enumera e transforma uma sequência e produz um dicionário classificado imutável com base em seu conteúdo usando o comparador de chave especificado. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>) |
Enumera e transforma uma sequência e produz um dicionário classificado imutável com base em seu conteúdo usando os comparadores de chave e valor especificados. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>) |
Enumera uma sequência e produz um conjunto classificado imutável de seu conteúdo. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Enumera uma sequência, produz um conjunto classificado imutável de seu conteúdo e usa o comparador especificado. |
CopyToDataTable<T>(IEnumerable<T>) |
Retorna um DataTable que contém cópias dos objetos DataRow, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Copia objetos DataRow no DataTable especificado, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Copia objetos DataRow no DataTable especificado, dado um objeto IEnumerable<T> de entrada em que o parâmetro genérico |
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Aplica uma função de acumulador a uma sequência. |
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Aplica uma função de acumulador a uma sequência. O valor de semente especificado é usado como o valor inicial do acumulador. |
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Aplica uma função de acumulador a uma sequência. O valor de semente especificado é usado como o valor inicial do acumulador e a função especificada é usada para selecionar o valor do resultado. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Fornece funcionalidades de bloqueio e delimitação para coleções thread-safe que implementam IProducerConsumerCollection<T>. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Fornece funcionalidades de bloqueio e delimitação para coleções thread-safe que implementam IProducerConsumerCollection<T>. |
All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Determina se todos os elementos de uma sequência atendem a uma condição. |
Any<TSource>(IEnumerable<TSource>) |
Determina se uma sequência contém elementos. |
Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Determina se algum elemento de uma sequência atende a uma condição. |
Append<TSource>(IEnumerable<TSource>, TSource) |
Acrescenta um valor ao final da sequência. |
AsEnumerable<TSource>(IEnumerable<TSource>) |
Retorna a entrada digitada como IEnumerable<T>. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcula a média de uma sequência de valores Decimal obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcula a média de uma sequência de valores Double obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcula a média de uma sequência de valores Int32 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcula a média de uma sequência de valores Int64 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcula a média de uma sequência de valores Decimal que permitem valor nulo obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Calcula a média de uma sequência de valores Double que permitem valor nulo obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Calcula a média de uma sequência de valores Int32 que permitem valor nulo obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Calcula a média de uma sequência de valores Int64 que permitem valor nulo obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Calcula a média de uma sequência de valores Single que permitem valor nulo obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Calcula a média de uma sequência de valores Single obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Cast<TResult>(IEnumerable) |
Converte os elementos de um IEnumerable para o tipo especificado. |
Chunk<TSource>(IEnumerable<TSource>, Int32) |
Divide os elementos de uma sequência em partes de tamanho no máximo |
Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Concatena duas sequências. |
Contains<TSource>(IEnumerable<TSource>, TSource) |
Determina se uma sequência contém um elemento especificado usando o comparador de igualdade padrão. |
Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
Determina se uma sequência contém um elemento especificado usando um IEqualityComparer<T> especificado. |
Count<TSource>(IEnumerable<TSource>) |
Retorna o número de elementos em uma sequência. |
Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna um número que representa quantos elementos na sequência especificada atendem a uma condição. |
CountBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Fornece funcionalidades de bloqueio e delimitação para coleções thread-safe que implementam IProducerConsumerCollection<T>. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>) |
Retornará os elementos da sequência especificada ou o valor padrão do parâmetro de tipo em uma coleção de singletons se a sequência estiver vazia. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Retorna os elementos da sequência especificada ou o valor especificado em uma coleção de singletons se a sequência está vazia. |
Distinct<TSource>(IEnumerable<TSource>) |
Retorna os elementos distintos de uma sequência usando o comparador de igualdade padrão para comparar valores. |
Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Retorna os elementos distintos de uma sequência usando um IEqualityComparer<T> especificado para comparar valores. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Retorna elementos distintos de uma sequência de acordo com uma função de seletor de chave especificada. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Retorna elementos distintos de uma sequência de acordo com uma função de seletor de chave especificada e usando um comparador especificado para comparar chaves. |
ElementAt<TSource>(IEnumerable<TSource>, Index) |
Retorna o elemento de um índice especificado em uma sequência. |
ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Retorna o elemento de um índice especificado em uma sequência. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index) |
Retorna o elemento em um índice especificado em uma sequência ou um valor padrão se o índice estiver fora do intervalo. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
Retorna o elemento em um índice especificado em uma sequência ou um valor padrão se o índice estiver fora do intervalo. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produz a diferença de conjunto de duas sequências usando o comparador de igualdade padrão para comparar os valores. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produz a diferença de conjunto de duas sequências usando o IEqualityComparer<T> especificado para comparar os valores. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Produz a diferença de conjunto de duas sequências de acordo com uma função de seletor de chave especificada. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Produz a diferença de conjunto de duas sequências de acordo com uma função de seletor de chave especificada. |
First<TSource>(IEnumerable<TSource>) |
Retorna o primeiro elemento de uma sequência. |
First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna o primeiro elemento em uma sequência que satisfaz uma condição especificada. |
FirstOrDefault<TSource>(IEnumerable<TSource>) |
Retorna o primeiro elemento de uma sequência ou um valor padrão se a sequência não contém elementos. |
FirstOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Retorna o primeiro elemento de uma sequência ou um valor padrão especificado se a sequência não contiver elementos. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna o primeiro elemento da sequência que satisfaz uma condição ou um valor padrão, caso esse elemento não seja encontrado. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Retorna o primeiro elemento da sequência que atende a uma condição ou um valor padrão especificado se nenhum elemento desse tipo for encontrado. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função de seletor de chave especificada. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função do seletor de chave especificada e compara as chaves usando um comparador especificado. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Agrupa os elementos de uma sequência de acordo com a função de seletor de chave especificada e projeta os elementos de cada grupo usando uma função especificada. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função de seletor de chave. As chaves são comparadas usando um comparador e os elementos de cada grupo são projetados usando uma função especificada. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) |
Agrupa os elementos de uma sequência de acordo com uma função do seletor de chave especificada e cria um valor de resultado de cada grupo e sua chave. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função do seletor de chave especificada e cria um valor de resultado de cada grupo e sua chave. As chaves são comparadas usando um comparador especificado. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) |
Agrupa os elementos de uma sequência de acordo com uma função do seletor de chave especificada e cria um valor de resultado de cada grupo e sua chave. Os elementos de cada grupo são projetados usando uma função especificada. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função do seletor de chave especificada e cria um valor de resultado de cada grupo e sua chave. Os valores da chave são comparados usando um comparador especificado e os elementos de cada grupo são projetados usando uma função especificada. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>) |
Correlaciona os elementos de duas sequências com base na igualdade de chaves e agrupa os resultados. O comparador de igualdade padrão é usado para comparar chaves. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>) |
Correlaciona os elementos de duas sequências com base na igualdade de chaves e agrupa os resultados. Um IEqualityComparer<T> especificado é usado para comparar chaves. |
Index<TSource>(IEnumerable<TSource>) |
Fornece funcionalidades de bloqueio e delimitação para coleções thread-safe que implementam IProducerConsumerCollection<T>. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produz a interseção de conjunto de duas sequências usando o comparador de igualdade padrão para comparar os valores. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produz a interseção de conjunto de duas sequências usando o IEqualityComparer<T> especificado para comparar os valores. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Produz a interseção definida de duas sequências de acordo com uma função de seletor de chave especificada. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Produz a interseção definida de duas sequências de acordo com uma função de seletor de chave especificada. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Correlaciona os elementos de duas sequências com base em chaves de correspondência. O comparador de igualdade padrão é usado para comparar chaves. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Correlaciona os elementos de duas sequências com base em chaves de correspondência. Um IEqualityComparer<T> especificado é usado para comparar chaves. |
Last<TSource>(IEnumerable<TSource>) |
Retorna o último elemento de uma sequência. |
Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna o último elemento de uma sequência que satisfaz uma condição especificada. |
LastOrDefault<TSource>(IEnumerable<TSource>) |
Retorna o último elemento de uma sequência ou um valor padrão se a sequência não contém elementos. |
LastOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Retorna o último elemento de uma sequência ou um valor padrão especificado se a sequência não contiver elementos. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna o último elemento de uma sequência que satisfaz uma condição ou um valor padrão, caso esse elemento não seja encontrado. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Retorna o último elemento de uma sequência que atende a uma condição ou um valor padrão especificado se nenhum elemento desse tipo for encontrado. |
LongCount<TSource>(IEnumerable<TSource>) |
Retorna um Int64 que representa o número total de elementos em uma sequência. |
LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna um Int64 que representa quantos elementos na sequência atendem a uma condição. |
Max<TSource>(IEnumerable<TSource>) |
Retorna o valor máximo em uma sequência genérica. |
Max<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Retorna o valor máximo em uma sequência genérica. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Decimal máximo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Double máximo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 máximo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int64 máximo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Decimal máximo que permite valor nulo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Double máximo que permite valor nulo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 máximo que permite valor nulo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int64 máximo que permite valor nulo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Single máximo que permite valor nulo. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Single máximo. |
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Invoca uma função de transformação em cada elemento de uma sequência genérica e retorna o maior valor resultante. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Retorna o valor máximo em uma sequência genérica de acordo com uma função de seletor de chave especificada. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Retorna o valor máximo em uma sequência genérica de acordo com uma função de seletor de chave especificada e um comparador de chave. |
Min<TSource>(IEnumerable<TSource>) |
Retorna o valor mínimo em uma sequência genérica. |
Min<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Retorna o valor mínimo em uma sequência genérica. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Decimal mínimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Double mínimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 mínimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int64 mínimo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Decimal mínimo que permite valor nulo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Double mínimo que permite valor nulo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 mínimo que permite valor nulo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int64 mínimo que permite valor nulo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Single mínimo que permite valor nulo. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Single mínimo. |
Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Invoca uma função de transformação em cada elemento de uma sequência genérica e retorna o menor valor resultante. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Retorna o valor mínimo em uma sequência genérica de acordo com uma função de seletor de chave especificada. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Retorna o valor mínimo em uma sequência genérica de acordo com uma função de seletor de chave especificada e um comparador de chave. |
OfType<TResult>(IEnumerable) |
Filtra os elementos de um IEnumerable com base em um tipo especificado. |
Order<T>(IEnumerable<T>) |
Classifica os elementos de uma sequência em ordem crescente. |
Order<T>(IEnumerable<T>, IComparer<T>) |
Classifica os elementos de uma sequência em ordem crescente. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Classifica os elementos de uma sequência em ordem crescente de acordo com uma chave. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Classifica os elementos de uma sequência em ordem crescente usando um comparador especificado. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Classifica os elementos de uma sequência em ordem decrescente de acordo com uma chave. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Classifica os elementos de uma sequência em ordem decrescente usando um comparador especificado. |
OrderDescending<T>(IEnumerable<T>) |
Classifica os elementos de uma sequência em ordem decrescente. |
OrderDescending<T>(IEnumerable<T>, IComparer<T>) |
Classifica os elementos de uma sequência em ordem decrescente. |
Prepend<TSource>(IEnumerable<TSource>, TSource) |
Adiciona um valor ao início da sequência. |
Reverse<TSource>(IEnumerable<TSource>) |
Inverte a ordem dos elementos em uma sequência. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Projeta cada elemento de uma sequência em um novo formulário. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Projeta cada elemento de uma sequência em um novo formulário, incorporando o índice do elemento. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
Projeta cada elemento de uma sequência em um IEnumerable<T> e nivela as sequências resultantes em uma sequência. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
Projeta cada elemento de uma sequência em um IEnumerable<T> e nivela as sequências resultantes em uma sequência. O índice de cada elemento de origem é usado no formulário projetado desse elemento. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Projeta cada elemento de uma sequência em um IEnumerable<T>, mescla as sequências resultantes em uma sequência e chama uma função de seletor de resultado em cada elemento contido nele. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Projeta cada elemento de uma sequência em um IEnumerable<T>, mescla as sequências resultantes em uma sequência e chama uma função de seletor de resultado em cada elemento contido nele. O índice de cada elemento de origem é usado no formulário projetado intermediário do elemento. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Determina se duas sequências são iguais comparando os elementos usando o comparador de igualdade padrão para o tipo. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Determina se duas sequências são iguais, comparando seus elementos usando um IEqualityComparer<T> especificado. |
Single<TSource>(IEnumerable<TSource>) |
Retornará o único elemento de uma sequência e lançará uma exceção se não houver exatamente um elemento na sequência. |
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna o único elemento de uma sequência que satisfaz uma condição especificada e gera uma exceção se houver mais de um tal elemento. |
SingleOrDefault<TSource>(IEnumerable<TSource>) |
Retorna o único elemento de uma sequência ou um valor padrão se a sequência é vazia; esse método gera uma exceção se há mais de um elemento na sequência. |
SingleOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Retorna o único elemento de uma sequência ou um valor padrão especificado se a sequência estiver vazia; esse método gerará uma exceção se houver mais de um elemento na sequência. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna o único elemento de uma sequência que satisfaz uma condição especificada ou um valor padrão se esse elemento não existir. Esse método lança uma exceção se mais de um elemento satisfizer a condição. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Retorna o único elemento de uma sequência que atende a uma condição especificada ou um valor padrão especificado se nenhum elemento desse tipo existir; esse método gerará uma exceção se mais de um elemento atender à condição. |
Skip<TSource>(IEnumerable<TSource>, Int32) |
Ignora um número especificado de elementos em uma sequência e retorna os elementos restantes. |
SkipLast<TSource>(IEnumerable<TSource>, Int32) |
Retorna uma nova coleção enumerável que contém os elementos de |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Ignora elementos em uma sequência, contanto que uma condição especificada seja verdadeira e retorne os elementos restantes. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Ignora elementos em uma sequência, contanto que uma condição especificada seja verdadeira e retorne os elementos restantes. O índice do elemento é usado na lógica da função de predicado. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcula a soma da sequência de valores Decimal obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcula a soma da sequência de valores Double obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcula a soma da sequência de valores Int32 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcula a soma da sequência de valores Int64 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcula a soma da sequência de valores Decimal anuláveis obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Calcula a soma da sequência de valores Double anuláveis obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Calcula a soma da sequência de valores Int32 anuláveis obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Calcula a soma da sequência de valores Int64 anuláveis obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Calcula a soma da sequência de valores Single anuláveis obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Calcula a soma da sequência de valores Single obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada. |
Take<TSource>(IEnumerable<TSource>, Int32) |
Retorna um número especificado de elementos contíguos do início de uma sequência. |
Take<TSource>(IEnumerable<TSource>, Range) |
Retorna um intervalo especificado de elementos contíguos de uma sequência. |
TakeLast<TSource>(IEnumerable<TSource>, Int32) |
Retorna uma nova coleção enumerável que contém os últimos elementos de |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna os elementos de uma sequência contanto que uma condição especificada seja verdadeira. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Retorna os elementos de uma sequência contanto que uma condição especificada seja verdadeira. O índice do elemento é usado na lógica da função de predicado. |
ToArray<TSource>(IEnumerable<TSource>) |
Cria uma matriz de um IEnumerable<T>. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Cria um Dictionary<TKey,TValue> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Cria um Dictionary<TKey,TValue> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada e um comparador de chaves. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Cria um Dictionary<TKey,TValue> de um IEnumerable<T>, de acordo com as funções especificadas de seletor de chave e seletor de elemento. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Cria um Dictionary<TKey,TValue> de um IEnumerable<T> de acordo com uma função de seletor de chave, um comparador e uma função de seletor de elemento especificados. |
ToHashSet<TSource>(IEnumerable<TSource>) |
Cria um HashSet<T> de um IEnumerable<T>. |
ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Cria um HashSet<T> de um IEnumerable<T> usando o |
ToList<TSource>(IEnumerable<TSource>) |
Cria um List<T> de um IEnumerable<T>. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Cria um Lookup<TKey,TElement> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Cria um Lookup<TKey,TElement> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada e um comparador de chaves. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Cria um Lookup<TKey,TElement> de um IEnumerable<T>, de acordo com as funções especificadas de seletor de chave e seletor de elemento. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Cria um Lookup<TKey,TElement> de um IEnumerable<T> de acordo com uma função de seletor de chave, um comparador e uma função de seletor de elemento especificados. |
TryGetNonEnumeratedCount<TSource>(IEnumerable<TSource>, Int32) |
Tenta determinar o número de elementos em uma sequência sem forçar uma enumeração. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produz a união de conjunto de duas sequências usando o comparador de igualdade padrão. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produz a união de conjunto de duas sequências usando o IEqualityComparer<T> especificado. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>) |
Produz a união definida de duas sequências de acordo com uma função de seletor de chave especificada. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Produz a união definida de duas sequências de acordo com uma função de seletor de chave especificada. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Filtra uma sequência de valores com base em um predicado. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Filtra uma sequência de valores com base em um predicado. O índice de cada elemento é usado na lógica da função de predicado. |
Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>) |
Produz uma sequência de tuplas com elementos das duas sequências especificadas. |
Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>) |
Produz uma sequência de tuplas com elementos das três sequências especificadas. |
Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>) |
Aplica uma função especificada para os elementos correspondentes de duas sequências, produzindo uma sequência dos resultados. |
AsParallel(IEnumerable) |
Habilita a paralelização de uma consulta. |
AsParallel<TSource>(IEnumerable<TSource>) |
Habilita a paralelização de uma consulta. |
AsQueryable(IEnumerable) |
Converte um IEnumerable em um IQueryable. |
AsQueryable<TElement>(IEnumerable<TElement>) |
Converte um IEnumerable<T> genérico em um IQueryable<T> genérico. |
Ancestors<T>(IEnumerable<T>) |
Retorna uma coleção de elementos que contém os ancestrais de cada nó na coleção de origem. |
Ancestors<T>(IEnumerable<T>, XName) |
Retorna uma coleção filtrada de elementos que contém os ancestrais de cada nó na coleção de origem. Somente os elementos que têm um XName correspondente são incluídos na coleção. |
DescendantNodes<T>(IEnumerable<T>) |
Retorna uma coleção dos nós descendentes de todos os documentos e elementos na coleção de origem. |
Descendants<T>(IEnumerable<T>) |
Retorna uma coleção de elementos que contém os elementos descendentes de cada elemento e o documento na coleção de origem. |
Descendants<T>(IEnumerable<T>, XName) |
Retorna uma coleção filtrada de elementos que contém os elementos descendentes de cada elemento e o documento na coleção de origem. Somente os elementos que têm um XName correspondente são incluídos na coleção. |
Elements<T>(IEnumerable<T>) |
Retorna uma coleção dos filhos elementos de cada elemento e o documento na coleção de origem. |
Elements<T>(IEnumerable<T>, XName) |
Retorna uma coleção filtrada dos elementos filho de cada elemento e documento na coleção de origem. Somente os elementos que têm um XName correspondente são incluídos na coleção. |
InDocumentOrder<T>(IEnumerable<T>) |
Retorna uma coleção de nós que contém todos os nós na coleção de origem, classificados em ordem segundo o documento. |
Nodes<T>(IEnumerable<T>) |
Retorna uma coleção dos nós filhos de todos os documentos e elementos na coleção de origem. |
Remove<T>(IEnumerable<T>) |
Remove todos os nós na coleção de origem do respectivo nó pai. |
Aplica-se a
Acesso thread-safe
O método Dispose não é thread-safe. Todos os outros membros públicos e protegidos do BlockingCollection<T> são thread-safe e podem ser usados simultaneamente de vários threads.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários