BlockingCollection<T> Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia możliwości blokowania i ograniczenia dla kolekcji bezpiecznych wątkowo, które implementują 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)
Parametry typu
- T
Typ elementów w kolekcji.
- Dziedziczenie
-
BlockingCollection<T>
- Atrybuty
- Implementuje
Przykłady
W poniższym przykładzie pokazano, jak dodać elementy i pobrać je współbieżnie z kolekcji blokującej:
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
Uwagi
BlockingCollection<T> to klasa kolekcji bezpieczna wątkowo, która udostępnia następujące elementy:
Implementacja wzorca producenta/konsumenta; BlockingCollection<T> to otoka interfejsu IProducerConsumerCollection<T>.
Równoczesne dodawanie i usuwanie elementów z wielu wątków za pomocą metod Add i Take.
Powiązana kolekcja, która blokuje operacje Add i Take, gdy kolekcja jest pełna lub pusta.
Anulowanie operacji Add lub Take przy użyciu obiektu CancellationToken w metodzie TryAdd lub TryTake.
Ważny
Ten typ implementuje interfejs IDisposable. Po zakończeniu korzystania z typu należy usunąć go bezpośrednio lub pośrednio. Aby usunąć typ bezpośrednio, wywołaj metodę Dispose w bloku try
/catch
. Aby usunąć go pośrednio, należy użyć konstrukcji języka, takiej jak using
(w języku C#) lub Using
(w Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję "Using an Object that Implements IDisposable" (Używanie obiektu implementujące interfejs IDisposable) w temacie interfejsu IDisposable. Należy również pamiętać, że metoda Dispose() nie jest bezpieczna wątkowo. Wszystkie inne publiczne i chronione elementy członkowskie BlockingCollection<T> są bezpieczne wątkowo i mogą być używane współbieżnie z wielu wątków.
IProducerConsumerCollection<T> reprezentuje kolekcję, która umożliwia bezpieczne wątkowo dodawanie i usuwanie danych. BlockingCollection<T> jest używana jako otoka wystąpienia IProducerConsumerCollection<T> i umożliwia usunięcie prób usunięcia z kolekcji do momentu usunięcia danych. Podobnie można utworzyć BlockingCollection<T>, aby wymusić górną granicę liczby elementów danych dozwolonych w IProducerConsumerCollection<T>; próby dodania do kolekcji mogą następnie blokować, dopóki miejsce nie będzie dostępne do przechowywania dodanych elementów. W ten sposób BlockingCollection<T> jest podobna do tradycyjnej struktury danych kolejki blokującej, z tą różnicą, że podstawowy mechanizm przechowywania danych jest abstrakcyjny jako IProducerConsumerCollection<T>.
BlockingCollection<T> obsługuje ograniczenia i blokowanie. Ograniczenie oznacza, że można ustawić maksymalną pojemność kolekcji. Ograniczenie jest ważne w niektórych scenariuszach, ponieważ umożliwia kontrolowanie maksymalnego rozmiaru kolekcji w pamięci i uniemożliwia tworzenie wątków zbyt daleko przed wątkami zużywającym. Wiele wątków lub zadań może jednocześnie dodawać elementy do kolekcji, a jeśli kolekcja osiągnie określoną maksymalną pojemność, wątki tworzące będą blokowane do momentu usunięcia elementu. Wielu użytkowników może jednocześnie usuwać elementy, a jeśli kolekcja stanie się pusta, wątki zużywające będą blokowane, dopóki producent nie doda elementu. Wątek tworzący może wywołać metodę CompleteAdding, aby wskazać, że nie zostaną dodane żadne elementy. Konsumenci monitorują właściwość IsCompleted, aby wiedzieć, kiedy kolekcja jest pusta i nie zostaną dodane żadne elementy.
Add i Take operacje są zwykle wykonywane w pętli. Pętlę można anulować, przekazując obiekt CancellationToken do metody TryAdd lub TryTake, a następnie sprawdzając wartość właściwości IsCancellationRequested tokenu w każdej iteracji. Jeśli wartość jest true
, należy odpowiedzieć na żądanie anulowania, czyszcząc wszelkie zasoby i zamykając pętlę.
Podczas tworzenia obiektu BlockingCollection<T> można określić nie tylko ograniczoną pojemność, ale także typ kolekcji do użycia. Można na przykład określić obiekt ConcurrentQueue<T> dla pierwszego na, pierwszy na wyjście (FIFO) zachowania lub ConcurrentStack<T> obiektu dla ostatniego w, najpierw na wyjęcie (LIFO). Możesz użyć dowolnej klasy kolekcji, która implementuje interfejs IProducerConsumerCollection<T>. Domyślny typ kolekcji dla BlockingCollection<T> to ConcurrentQueue<T>.
Nie należy bezpośrednio modyfikować podstawowej kolekcji. Użyj BlockingCollection<T> metod, aby dodawać lub usuwać elementy. Obiekt BlockingCollection<T> może ulec uszkodzeniu, jeśli zmienisz podstawową kolekcję bezpośrednio.
BlockingCollection<T> nie została zaprojektowana z uwzględnieniem dostępu asynchronicznego. Jeśli aplikacja wymaga scenariuszy asynchronicznych producentów/konsumentów, rozważ użycie Channel<T> zamiast tego.
Konstruktory
BlockingCollection<T>() |
Inicjuje nowe wystąpienie klasy BlockingCollection<T> bez górnej granicy. |
BlockingCollection<T>(Int32) |
Inicjuje nowe wystąpienie klasy BlockingCollection<T> z określoną górną granicą. |
BlockingCollection<T>(IProducerConsumerCollection<T>) |
Inicjuje nowe wystąpienie klasy BlockingCollection<T> bez górnej granicy i używa podanego IProducerConsumerCollection<T> jako bazowego magazynu danych. |
BlockingCollection<T>(IProducerConsumerCollection<T>, Int32) |
Inicjuje nowe wystąpienie klasy BlockingCollection<T> z określoną górną granicą i przy użyciu podanego IProducerConsumerCollection<T> jako bazowego magazynu danych. |
Właściwości
BoundedCapacity |
Pobiera powiązaną pojemność tego wystąpienia BlockingCollection<T>. |
Count |
Pobiera liczbę elementów zawartych w BlockingCollection<T>. |
IsAddingCompleted |
Pobiera, czy ta BlockingCollection<T> została oznaczona jako ukończona w celu dodania. |
IsCompleted |
Pobiera, czy ta BlockingCollection<T> została oznaczona jako ukończona na potrzeby dodawania i jest pusta. |
Metody
Add(T) |
Dodaje element do BlockingCollection<T>. |
Add(T, CancellationToken) |
Dodaje element do BlockingCollection<T>. |
AddToAny(BlockingCollection<T>[], T) |
Dodaje określony element do dowolnego z określonych wystąpień BlockingCollection<T>. |
AddToAny(BlockingCollection<T>[], T, CancellationToken) |
Dodaje określony element do dowolnego z określonych wystąpień BlockingCollection<T>. |
CompleteAdding() |
Oznacza wystąpienia BlockingCollection<T>, ponieważ nie akceptują żadnych dodatkowych dodatków. |
CopyTo(T[], Int32) |
Kopiuje wszystkie elementy w wystąpieniu BlockingCollection<T> do zgodnej tablicy jednowymiarowej, począwszy od określonego indeksu tablicy docelowej. |
Dispose() |
Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy BlockingCollection<T>. |
Dispose(Boolean) |
Zwalnia zasoby używane przez wystąpienie BlockingCollection<T>. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
GetConsumingEnumerable() |
Zapewnia IEnumerable<T> zużywające elementy w kolekcji. |
GetConsumingEnumerable(CancellationToken) |
Zapewnia IEnumerable<T> zużywające elementy w kolekcji. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
Take() |
Usuwa element z BlockingCollection<T>. |
Take(CancellationToken) |
Usuwa element z BlockingCollection<T>. |
TakeFromAny(BlockingCollection<T>[], T) |
Pobiera element z dowolnego z określonych wystąpień BlockingCollection<T>. |
TakeFromAny(BlockingCollection<T>[], T, CancellationToken) |
Pobiera element z dowolnego z określonych wystąpień BlockingCollection<T> podczas obserwowania określonego tokenu anulowania. |
ToArray() |
Kopiuje elementy z wystąpienia BlockingCollection<T> do nowej tablicy. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
TryAdd(T) |
Próbuje dodać określony element do BlockingCollection<T>. |
TryAdd(T, Int32) |
Próbuje dodać określony element do BlockingCollection<T> w określonym przedziale czasu. |
TryAdd(T, Int32, CancellationToken) |
Próbuje dodać określony element do BlockingCollection<T> w określonym przedziale czasu, obserwując token anulowania. |
TryAdd(T, TimeSpan) |
Próbuje dodać określony element do BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T) |
Próbuje dodać określony element do dowolnego z określonych wystąpień BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, Int32) |
Próbuje dodać określony element do dowolnego z określonych wystąpień BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Próbuje dodać określony element do dowolnego z określonych wystąpień BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, TimeSpan) |
Próbuje dodać określony element do dowolnego z określonych wystąpień BlockingCollection<T> podczas obserwowania określonego tokenu anulowania. |
TryTake(T) |
Próbuje usunąć element z BlockingCollection<T>. |
TryTake(T, Int32) |
Próbuje usunąć element z BlockingCollection<T> w określonym przedziale czasu. |
TryTake(T, Int32, CancellationToken) |
Próbuje usunąć element z BlockingCollection<T> w określonym przedziale czasu podczas obserwowania tokenu anulowania. |
TryTake(T, TimeSpan) |
Próbuje usunąć element z BlockingCollection<T> w określonym przedziale czasu. |
TryTakeFromAny(BlockingCollection<T>[], T) |
Próbuje usunąć element z dowolnego z określonych wystąpień BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Próbuje usunąć element z dowolnego z określonych wystąpień BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Próbuje usunąć element z dowolnego z określonych wystąpień BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Próbuje usunąć element z dowolnego z określonych wystąpień BlockingCollection<T>. |
Jawne implementacje interfejsu
ICollection.CopyTo(Array, Int32) |
Kopiuje wszystkie elementy w wystąpieniu BlockingCollection<T> do zgodnej tablicy jednowymiarowej, począwszy od określonego indeksu tablicy docelowej. |
ICollection.IsSynchronized |
Pobiera wartość wskazującą, czy dostęp do ICollection jest synchronizowany (bezpieczny wątek). |
ICollection.SyncRoot |
Pobiera obiekt, który może służyć do synchronizowania dostępu do ICollection. Ta właściwość nie jest obsługiwana. |
IEnumerable.GetEnumerator() |
Udostępnia IEnumerator dla elementów w kolekcji. |
IEnumerable<T>.GetEnumerator() |
Udostępnia IEnumerator<T> dla elementów w kolekcji. |
Metody rozszerzania
ToFrozenDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Tworzy FrozenDictionary<TKey,TValue> na podstawie IEnumerable<T> zgodnie z określoną funkcją selektora kluczy. |
ToFrozenDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Tworzy FrozenDictionary<TKey,TValue> z IEnumerable<T> zgodnie z określonymi funkcjami selektora kluczy i selektora elementów. |
ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>) |
Tworzy FrozenSet<T> z określonymi wartościami. |
ToImmutableArray<TSource>(IEnumerable<TSource>) |
Tworzy niezmienną tablicę z określonej kolekcji. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Tworzy niezmienny słownik z istniejącej kolekcji elementów, stosując funkcję przekształcania do kluczy źródłowych. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Tworzy niezmienny słownik na podstawie niektórych przekształceń sekwencji. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Wylicza i przekształca sekwencję oraz tworzy niezmienny słownik jego zawartości. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>) |
Wylicza i przekształca sekwencję i tworzy niezmienny słownik jego zawartości przy użyciu określonego porównania kluczy. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>) |
Wylicza i przekształca sekwencję oraz tworzy niezmienny słownik jego zawartości przy użyciu określonych porównań kluczy i wartości. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>) |
Wylicza sekwencję i tworzy niezmienny zestaw skrótów jego zawartości. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Wylicza sekwencję, tworzy niezmienny zestaw skrótów jego zawartości i używa określonego porównania równości dla typu zestawu. |
ToImmutableList<TSource>(IEnumerable<TSource>) |
Wylicza sekwencję i tworzy niezmienną listę jego zawartości. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Wylicza i przekształca sekwencję i tworzy niezmienny posortowany słownik jego zawartości. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>) |
Wylicza i przekształca sekwencję i tworzy niezmienny posortowany słownik jego zawartości przy użyciu określonego porównania kluczy. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>) |
Wylicza i przekształca sekwencję oraz tworzy niezmienny posortowany słownik jego zawartości przy użyciu określonych porównań kluczy i wartości. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>) |
Wylicza sekwencję i tworzy niezmienny posortowany zestaw jego zawartości. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Wylicza sekwencję, tworzy niezmienialny zestaw posortowany jego zawartości i używa określonego porównania. |
CopyToDataTable<T>(IEnumerable<T>) |
Zwraca DataTable, który zawiera kopie obiektów DataRow, biorąc pod uwagę obiekt wejściowy IEnumerable<T>, w którym parametr ogólny |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Kopiuje obiekty DataRow do określonego DataTable, biorąc pod uwagę obiekt wejściowy IEnumerable<T>, w którym parametr ogólny |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Kopiuje obiekty DataRow do określonego DataTable, biorąc pod uwagę obiekt wejściowy IEnumerable<T>, w którym parametr ogólny |
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Stosuje funkcję akumulatorową w sekwencji. |
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Stosuje funkcję akumulatorową w sekwencji. Określona wartość inicju jest używana jako początkowa wartość akumulatorowa. |
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Stosuje funkcję akumulatorową w sekwencji. Określona wartość inicjatora jest używana jako początkowa wartość akumulowania, a określona funkcja służy do wybierania wartości wyniku. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Zapewnia możliwości blokowania i ograniczenia dla kolekcji bezpiecznych wątkowo, które implementują IProducerConsumerCollection<T>. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Zapewnia możliwości blokowania i ograniczenia dla kolekcji bezpiecznych wątkowo, które implementują IProducerConsumerCollection<T>. |
All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Określa, czy wszystkie elementy sekwencji spełniają warunek. |
Any<TSource>(IEnumerable<TSource>) |
Określa, czy sekwencja zawiera jakiekolwiek elementy. |
Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Określa, czy dowolny element sekwencji spełnia warunek. |
Append<TSource>(IEnumerable<TSource>, TSource) |
Dołącza wartość na końcu sekwencji. |
AsEnumerable<TSource>(IEnumerable<TSource>) |
Zwraca dane wejściowe wpisane jako IEnumerable<T>. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Oblicza średnią sekwencji Decimal wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Oblicza średnią sekwencji Double wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Oblicza średnią sekwencji Int32 wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Oblicza średnią sekwencji Int64 wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Oblicza średnią sekwencji wartości dopuszczających wartość null Decimal, które są uzyskiwane przez wywołanie funkcji transform w każdym elemecie sekwencji wejściowej. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Oblicza średnią sekwencji wartości dopuszczających wartość null Double, które są uzyskiwane przez wywołanie funkcji transform w każdym elemecie sekwencji wejściowej. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Oblicza średnią sekwencji wartości dopuszczających wartość null Int32, które są uzyskiwane przez wywołanie funkcji transform w każdym elemecie sekwencji wejściowej. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Oblicza średnią sekwencji wartości dopuszczających wartość null Int64, które są uzyskiwane przez wywołanie funkcji transform w każdym elemecie sekwencji wejściowej. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Oblicza średnią sekwencji wartości dopuszczających wartość null Single, które są uzyskiwane przez wywołanie funkcji transform w każdym elemecie sekwencji wejściowej. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Oblicza średnią sekwencji Single wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Cast<TResult>(IEnumerable) |
Rzutuje elementy IEnumerable do określonego typu. |
Chunk<TSource>(IEnumerable<TSource>, Int32) |
Dzieli elementy sekwencji na fragmenty rozmiaru w większości |
Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Łączy dwie sekwencje. |
Contains<TSource>(IEnumerable<TSource>, TSource) |
Określa, czy sekwencja zawiera określony element przy użyciu domyślnego modułu porównywania równości. |
Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
Określa, czy sekwencja zawiera określony element przy użyciu określonego IEqualityComparer<T>. |
Count<TSource>(IEnumerable<TSource>) |
Zwraca liczbę elementów w sekwencji. |
Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca liczbę reprezentującą, ile elementów w określonej sekwencji spełnia warunek. |
CountBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Zapewnia możliwości blokowania i ograniczenia dla kolekcji bezpiecznych wątkowo, które implementują IProducerConsumerCollection<T>. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>) |
Zwraca elementy określonej sekwencji lub wartość domyślną parametru typu w kolekcji pojedynczej, jeśli sekwencja jest pusta. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Zwraca elementy określonej sekwencji lub określoną wartość w kolekcji pojedynczej, jeśli sekwencja jest pusta. |
Distinct<TSource>(IEnumerable<TSource>) |
Zwraca różne elementy z sekwencji przy użyciu domyślnego modułu porównywania równości do porównywania wartości. |
Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Zwraca różne elementy z sekwencji przy użyciu określonego IEqualityComparer<T> do porównywania wartości. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Zwraca odrębne elementy z sekwencji zgodnie z określoną funkcją selektora kluczy. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Zwraca różne elementy z sekwencji zgodnie z określoną funkcją selektora kluczy i przy użyciu określonego modułu porównującego do porównywania kluczy. |
ElementAt<TSource>(IEnumerable<TSource>, Index) |
Zwraca element w określonym indeksie w sekwencji. |
ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Zwraca element w określonym indeksie w sekwencji. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index) |
Zwraca element w określonym indeksie w sekwencji lub wartość domyślną, jeśli indeks jest poza zakresem. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
Zwraca element w określonym indeksie w sekwencji lub wartość domyślną, jeśli indeks jest poza zakresem. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Tworzy różnicę zestawu dwóch sekwencji przy użyciu domyślnego porównywania równości do porównywania wartości. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Tworzy różnicę zestawu dwóch sekwencji przy użyciu określonego IEqualityComparer<T> do porównywania wartości. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Tworzy różnicę zestawu dwóch sekwencji zgodnie z określoną funkcją selektora kluczy. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Tworzy różnicę zestawu dwóch sekwencji zgodnie z określoną funkcją selektora kluczy. |
First<TSource>(IEnumerable<TSource>) |
Zwraca pierwszy element sekwencji. |
First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca pierwszy element w sekwencji, który spełnia określony warunek. |
FirstOrDefault<TSource>(IEnumerable<TSource>) |
Zwraca pierwszy element sekwencji lub wartość domyślną, jeśli sekwencja nie zawiera żadnych elementów. |
FirstOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Zwraca pierwszy element sekwencji lub określoną wartość domyślną, jeśli sekwencja nie zawiera żadnych elementów. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca pierwszy element sekwencji, który spełnia warunek lub wartość domyślną, jeśli taki element nie zostanie znaleziony. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Zwraca pierwszy element sekwencji, który spełnia warunek lub określoną wartość domyślną, jeśli taki element nie zostanie znaleziony. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Grupuje elementy sekwencji zgodnie z określoną funkcją selektora kluczy. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Grupuje elementy sekwencji zgodnie z określoną funkcją selektora kluczy i porównuje klucze przy użyciu określonego porównania. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Grupuje elementy sekwencji zgodnie z określoną funkcją selektora kluczy i projektuje elementy dla każdej grupy przy użyciu określonej funkcji. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Grupuje elementy sekwencji zgodnie z funkcją selektora klucza. Klucze są porównywane przy użyciu modułu porównującego, a elementy każdej grupy są projektowane przy użyciu określonej funkcji. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) |
Grupuje elementy sekwencji zgodnie z określoną funkcją selektora kluczy i tworzy wartość wynikową z każdej grupy i jej klucza. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) |
Grupuje elementy sekwencji zgodnie z określoną funkcją selektora kluczy i tworzy wartość wynikową z każdej grupy i jej klucza. Klucze są porównywane przy użyciu określonego porównania. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) |
Grupuje elementy sekwencji zgodnie z określoną funkcją selektora kluczy i tworzy wartość wynikową z każdej grupy i jej klucza. Elementy każdej grupy są projektowane przy użyciu określonej funkcji. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>) |
Grupuje elementy sekwencji zgodnie z określoną funkcją selektora kluczy i tworzy wartość wynikową z każdej grupy i jej klucza. Wartości klucza są porównywane przy użyciu określonego porównania, a elementy każdej grupy są przewidywane przy użyciu określonej funkcji. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>) |
Koreluje elementy dwóch sekwencji na podstawie równości kluczy i grupuje wyniki. Domyślny moduł porównywania równości służy do porównywania kluczy. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>) |
Koreluje elementy dwóch sekwencji na podstawie równości klucza i grupuje wyniki. Określony IEqualityComparer<T> służy do porównywania kluczy. |
Index<TSource>(IEnumerable<TSource>) |
Zwraca wyliczenie, które uwzględnia indeks elementu w krotkę. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Tworzy przecięcie zestawu dwóch sekwencji przy użyciu domyślnego modułu porównywania równości do porównywania wartości. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Tworzy przecięcie zestawu dwóch sekwencji przy użyciu określonego IEqualityComparer<T> do porównywania wartości. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Tworzy przecięcie zestawu dwóch sekwencji zgodnie z określoną funkcją selektora kluczy. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Tworzy przecięcie zestawu dwóch sekwencji zgodnie z określoną funkcją selektora kluczy. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Koreluje elementy dwóch sekwencji na podstawie pasujących kluczy. Domyślny moduł porównywania równości służy do porównywania kluczy. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Koreluje elementy dwóch sekwencji na podstawie pasujących kluczy. Określony IEqualityComparer<T> służy do porównywania kluczy. |
Last<TSource>(IEnumerable<TSource>) |
Zwraca ostatni element sekwencji. |
Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca ostatni element sekwencji, który spełnia określony warunek. |
LastOrDefault<TSource>(IEnumerable<TSource>) |
Zwraca ostatni element sekwencji lub wartość domyślną, jeśli sekwencja nie zawiera żadnych elementów. |
LastOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Zwraca ostatni element sekwencji lub określoną wartość domyślną, jeśli sekwencja nie zawiera żadnych elementów. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca ostatni element sekwencji, który spełnia warunek lub wartość domyślną, jeśli taki element nie zostanie znaleziony. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Zwraca ostatni element sekwencji, który spełnia warunek lub określoną wartość domyślną, jeśli taki element nie zostanie znaleziony. |
LongCount<TSource>(IEnumerable<TSource>) |
Zwraca Int64 reprezentującą łączną liczbę elementów w sekwencji. |
LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca Int64 reprezentującą liczbę elementów w sekwencji spełniających warunek. |
Max<TSource>(IEnumerable<TSource>) |
Zwraca wartość maksymalną w sekwencji ogólnej. |
Max<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Zwraca wartość maksymalną w sekwencji ogólnej. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość Decimal. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość Double. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość Int32. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość Int64. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość dopuszczaną do wartości null Decimal. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość dopuszczaną do wartości null Double. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość dopuszczaną do wartości null Int32. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość dopuszczaną do wartości null Int64. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość dopuszczaną do wartości null Single. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca maksymalną wartość Single. |
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Wywołuje funkcję transform dla każdego elementu sekwencji ogólnej i zwraca maksymalną wynikową wartość. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Zwraca wartość maksymalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Zwraca wartość maksymalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy i modułem porównującym klucz. |
Min<TSource>(IEnumerable<TSource>) |
Zwraca wartość minimalną w sekwencji ogólnej. |
Min<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Zwraca wartość minimalną w sekwencji ogólnej. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca minimalną wartość Decimal. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca minimalną wartość Double. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca minimalną wartość Int32. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca minimalną wartość Int64. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Wywołuje funkcję przekształcania dla każdego elementu sekwencji i zwraca minimalną wartość dopuszczaną do wartości null Decimal. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Wywołuje funkcję przekształcania dla każdego elementu sekwencji i zwraca minimalną wartość dopuszczaną do wartości null Double. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Wywołuje funkcję przekształcania dla każdego elementu sekwencji i zwraca minimalną wartość dopuszczaną do wartości null Int32. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Wywołuje funkcję przekształcania dla każdego elementu sekwencji i zwraca minimalną wartość dopuszczaną do wartości null Int64. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Wywołuje funkcję przekształcania dla każdego elementu sekwencji i zwraca minimalną wartość dopuszczaną do wartości null Single. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Wywołuje funkcję transform dla każdego elementu sekwencji i zwraca minimalną wartość Single. |
Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Wywołuje funkcję przekształcania dla każdego elementu sekwencji ogólnej i zwraca minimalną wynikową wartość. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Zwraca wartość minimalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Zwraca wartość minimalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy i modułem porównania kluczy. |
OfType<TResult>(IEnumerable) |
Filtruje elementy IEnumerable na podstawie określonego typu. |
Order<T>(IEnumerable<T>) |
Sortuje elementy sekwencji w kolejności rosnącej. |
Order<T>(IEnumerable<T>, IComparer<T>) |
Sortuje elementy sekwencji w kolejności rosnącej. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Sortuje elementy sekwencji w kolejności rosnącej zgodnie z kluczem. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Sortuje elementy sekwencji w kolejności rosnącej przy użyciu określonego modułu porównania. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Sortuje elementy sekwencji w kolejności malejącej zgodnie z kluczem. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Sortuje elementy sekwencji w kolejności malejącej przy użyciu określonego porównania. |
OrderDescending<T>(IEnumerable<T>) |
Sortuje elementy sekwencji w kolejności malejącej. |
OrderDescending<T>(IEnumerable<T>, IComparer<T>) |
Sortuje elementy sekwencji w kolejności malejącej. |
Prepend<TSource>(IEnumerable<TSource>, TSource) |
Dodaje wartość na początku sekwencji. |
Reverse<TSource>(IEnumerable<TSource>) |
Odwraca kolejność elementów w sekwencji. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Projektuje każdy element sekwencji w nowym formularzu. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Projektuje każdy element sekwencji w nowym formularzu, dołączając indeks elementu. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
Rzutuje każdy element sekwencji na IEnumerable<T> i spłaszcza sekwencje wynikowe w jedną sekwencję. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
Projektuje każdy element sekwencji do IEnumerable<T>i spłaszcza wynikowe sekwencje w jedną sekwencję. Indeks każdego elementu źródłowego jest używany w przewidywanej formie tego elementu. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Projektuje każdy element sekwencji do IEnumerable<T>, spłaszcza wynikowe sekwencje w jedną sekwencję i wywołuje funkcję selektora wyników w każdym z nich. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Projektuje każdy element sekwencji do IEnumerable<T>, spłaszcza wynikowe sekwencje w jedną sekwencję i wywołuje funkcję selektora wyników w każdym z nich. Indeks każdego elementu źródłowego jest używany w pośredniej przewidywanej formie tego elementu. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Określa, czy dwie sekwencje są równe, porównując elementy przy użyciu domyślnego porównania równości dla ich typu. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Określa, czy dwie sekwencje są równe, porównując ich elementy przy użyciu określonej IEqualityComparer<T>. |
Single<TSource>(IEnumerable<TSource>) |
Zwraca jedyny element sekwencji i zgłasza wyjątek, jeśli nie ma dokładnie jednego elementu w sekwencji. |
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca jedyny element sekwencji, który spełnia określony warunek, i zgłasza wyjątek, jeśli istnieje więcej niż jeden taki element. |
SingleOrDefault<TSource>(IEnumerable<TSource>) |
Zwraca jedyny element sekwencji lub wartość domyślną, jeśli sekwencja jest pusta; Ta metoda zgłasza wyjątek, jeśli w sekwencji znajduje się więcej niż jeden element. |
SingleOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Zwraca jedyny element sekwencji lub określoną wartość domyślną, jeśli sekwencja jest pusta; Ta metoda zgłasza wyjątek, jeśli w sekwencji znajduje się więcej niż jeden element. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca jedyny element sekwencji, który spełnia określony warunek lub wartość domyślną, jeśli taki element nie istnieje; Ta metoda zgłasza wyjątek, jeśli warunek spełnia więcej niż jeden element. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Zwraca jedyny element sekwencji, który spełnia określony warunek lub określoną wartość domyślną, jeśli taki element nie istnieje; Ta metoda zgłasza wyjątek, jeśli warunek spełnia więcej niż jeden element. |
Skip<TSource>(IEnumerable<TSource>, Int32) |
Pomija określoną liczbę elementów w sekwencji, a następnie zwraca pozostałe elementy. |
SkipLast<TSource>(IEnumerable<TSource>, Int32) |
Zwraca nową kolekcję wyliczalną zawierającą elementy z |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy. Indeks elementu jest używany w logice funkcji predykatu. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Oblicza sumę sekwencji Decimal wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Oblicza sumę sekwencji Double wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Oblicza sumę sekwencji Int32 wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Oblicza sumę sekwencji Int64 wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Oblicza sumę sekwencji wartości dopuszczających wartość null Decimal, które są uzyskiwane przez wywołanie funkcji transform w poszczególnych elementach sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Oblicza sumę sekwencji wartości dopuszczających wartość null Double, które są uzyskiwane przez wywołanie funkcji transform w poszczególnych elementach sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Oblicza sumę sekwencji wartości dopuszczających wartość null Int32, które są uzyskiwane przez wywołanie funkcji transform w poszczególnych elementach sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Oblicza sumę sekwencji wartości dopuszczających wartość null Int64, które są uzyskiwane przez wywołanie funkcji transform w poszczególnych elementach sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Oblicza sumę sekwencji wartości dopuszczających wartość null Single, które są uzyskiwane przez wywołanie funkcji transform w poszczególnych elementach sekwencji danych wejściowych. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Oblicza sumę sekwencji Single wartości uzyskanych przez wywołanie funkcji transform w każdym elemecie sekwencji danych wejściowych. |
Take<TSource>(IEnumerable<TSource>, Int32) |
Zwraca określoną liczbę ciągłych elementów od początku sekwencji. |
Take<TSource>(IEnumerable<TSource>, Range) |
Zwraca określony zakres ciągłych elementów z sekwencji. |
TakeLast<TSource>(IEnumerable<TSource>, Int32) |
Zwraca nową kolekcję wyliczalną zawierającą ostatnie elementy |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Zwraca elementy z sekwencji, o ile określony warunek jest spełniony. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Zwraca elementy z sekwencji, o ile określony warunek jest spełniony. Indeks elementu jest używany w logice funkcji predykatu. |
ToArray<TSource>(IEnumerable<TSource>) |
Tworzy tablicę na podstawie IEnumerable<T>. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Tworzy Dictionary<TKey,TValue> na podstawie IEnumerable<T> zgodnie z określoną funkcją selektora kluczy. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Tworzy Dictionary<TKey,TValue> na podstawie IEnumerable<T> zgodnie z określoną funkcją selektora kluczy i modułem porównania kluczy. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Tworzy Dictionary<TKey,TValue> z IEnumerable<T> zgodnie z określonymi funkcjami selektora kluczy i selektora elementów. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Tworzy Dictionary<TKey,TValue> na podstawie IEnumerable<T> zgodnie z określoną funkcją selektora kluczy, modułem porównania i funkcją selektora elementów. |
ToHashSet<TSource>(IEnumerable<TSource>) |
Tworzy HashSet<T> na podstawie IEnumerable<T>. |
ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Tworzy HashSet<T> na podstawie IEnumerable<T> przy użyciu |
ToList<TSource>(IEnumerable<TSource>) |
Tworzy List<T> na podstawie IEnumerable<T>. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Tworzy Lookup<TKey,TElement> na podstawie IEnumerable<T> zgodnie z określoną funkcją selektora kluczy. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Tworzy Lookup<TKey,TElement> na podstawie IEnumerable<T> zgodnie z określoną funkcją selektora kluczy i modułem porównania kluczy. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Tworzy Lookup<TKey,TElement> z IEnumerable<T> zgodnie z określonymi funkcjami selektora kluczy i selektora elementów. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Tworzy Lookup<TKey,TElement> na podstawie IEnumerable<T> zgodnie z określoną funkcją selektora kluczy, modułem porównującym i funkcją selektora elementów. |
TryGetNonEnumeratedCount<TSource>(IEnumerable<TSource>, Int32) |
Próbuje określić liczbę elementów w sekwencji bez wymuszania wyliczenia. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Tworzy zestaw unii dwóch sekwencji przy użyciu domyślnego porównania równości. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Tworzy zbiór dwóch sekwencji przy użyciu określonej IEqualityComparer<T>. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>) |
Tworzy zestaw unii dwóch sekwencji zgodnie z określoną funkcją selektora kluczy. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Tworzy zestaw unii dwóch sekwencji zgodnie z określoną funkcją selektora kluczy. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Filtruje sekwencję wartości na podstawie predykatu. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Filtruje sekwencję wartości na podstawie predykatu. Indeks każdego elementu jest używany w logice funkcji predykatu. |
Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>) |
Tworzy sekwencję krotki z elementami z dwóch określonych sekwencji. |
Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>) |
Tworzy sekwencję krotki z elementami z trzech określonych sekwencji. |
Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>) |
Stosuje określoną funkcję do odpowiednich elementów dwóch sekwencji, tworząc sekwencję wyników. |
AsParallel(IEnumerable) |
Umożliwia równoległość zapytania. |
AsParallel<TSource>(IEnumerable<TSource>) |
Umożliwia równoległość zapytania. |
AsQueryable(IEnumerable) |
Konwertuje IEnumerable na IQueryable. |
AsQueryable<TElement>(IEnumerable<TElement>) |
Konwertuje ogólny IEnumerable<T> na ogólny IQueryable<T>. |
Ancestors<T>(IEnumerable<T>) |
Zwraca kolekcję elementów, które zawierają elementy podrzędne każdego węzła w kolekcji źródłowej. |
Ancestors<T>(IEnumerable<T>, XName) |
Zwraca odfiltrowaną kolekcję elementów, które zawierają elementy podrzędne każdego węzła w kolekcji źródłowej. W kolekcji znajdują się tylko elementy, które mają pasujący XName. |
DescendantNodes<T>(IEnumerable<T>) |
Zwraca kolekcję węzłów podrzędnych każdego dokumentu i elementu w kolekcji źródłowej. |
Descendants<T>(IEnumerable<T>) |
Zwraca kolekcję elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej. |
Descendants<T>(IEnumerable<T>, XName) |
Zwraca filtrowaną kolekcję elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej. W kolekcji znajdują się tylko elementy, które mają pasujący XName. |
Elements<T>(IEnumerable<T>) |
Zwraca kolekcję elementów podrzędnych każdego elementu i dokumentu w kolekcji źródłowej. |
Elements<T>(IEnumerable<T>, XName) |
Zwraca odfiltrowaną kolekcję elementów podrzędnych każdego elementu i dokumentu w kolekcji źródłowej. W kolekcji znajdują się tylko elementy, które mają pasujący XName. |
InDocumentOrder<T>(IEnumerable<T>) |
Zwraca kolekcję węzłów, która zawiera wszystkie węzły w kolekcji źródłowej posortowane w kolejności dokumentu. |
Nodes<T>(IEnumerable<T>) |
Zwraca kolekcję węzłów podrzędnych każdego dokumentu i elementu w kolekcji źródłowej. |
Remove<T>(IEnumerable<T>) |
Usuwa każdy węzeł w kolekcji źródłowej z węzła nadrzędnego. |
Dotyczy
Bezpieczeństwo wątkowe
Metoda Dispose nie jest bezpieczna wątkowo. Wszystkie inne publiczne i chronione elementy członkowskie BlockingCollection<T> są bezpieczne wątkowo i mogą być używane współbieżnie z wielu wątków.