BlockingCollection<T> Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет возможности блокировки и ограничения для потокобезопасных коллекций, реализующих 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)
Параметры типа
- T
Тип элементов в коллекции.
- Наследование
-
BlockingCollection<T>
- Атрибуты
- Реализации
Примеры
В следующем примере показано, как одновременно добавлять и принимать элементы из блокирующей коллекции:
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
Комментарии
BlockingCollection<T> — это потокобезопасный класс коллекции, предоставляющий следующие возможности:
Реализация шаблона производителя/потребителя; BlockingCollection<T> является оболочкой для IProducerConsumerCollection<T> интерфейса.
Параллельное добавление и удаление элементов из нескольких потоков с помощью Add методов и Take .
Ограниченная коллекция, которая блокирует Add и Take работает, когда коллекция заполнена или пуста.
Отмена операций Add или Take с помощью CancellationToken объекта в методе TryAdd или TryTake .
Важно!
Этот тип реализует интерфейс IDisposable. По окончании использования выдаленную ему память следует прямо или косвенно освободить. Чтобы сделать это прямо, вызовите его метод Dispose в блоке try
/catch
. Чтобы сделать это косвенно, используйте языковые конструкции, такие как using
(в C#) или Using
(в Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в статье об интерфейсе IDisposable. Кроме того, обратите внимание, что Dispose() метод не является потокобезопасным. Все остальные общедоступные и защищенные члены BlockingCollection<T> являются потокобезопасными и могут использоваться одновременно из нескольких потоков.
IProducerConsumerCollection<T> представляет коллекцию, которая обеспечивает потокобезопасное добавление и удаление данных. BlockingCollection<T> используется в качестве оболочки для экземпляра IProducerConsumerCollection<T> и позволяет блокировать попытки удаления из коллекции, пока данные не будут доступны для удаления. Аналогичным образом можно создать BlockingCollection<T> , чтобы применить верхнюю границу к числу элементов данных, разрешенных в IProducerConsumerCollection<T>коллекции . Попытки добавления в коллекцию могут затем блокироваться, пока не будет доступно место для хранения добавленных элементов. Таким образом, BlockingCollection<T> это похоже на традиционную структуру данных блокирующей очереди, за исключением того, что базовый механизм хранения данных абстрагируется как IProducerConsumerCollection<T>.
BlockingCollection<T> поддерживает границы и блокировку. Ограничение означает, что можно задать максимальную емкость коллекции. Ограничение имеет важное значение в некоторых сценариях, так как позволяет управлять максимальным размером коллекции в памяти и не позволяет создавать потоки слишком далеко впереди потребляющих потоков. Несколько потоков или задач могут одновременно добавлять элементы в коллекцию, и если коллекция достигает указанной максимальной емкости, создающие потоки будут блокироваться, пока элемент не будет удален. Элементы коллекции могут параллельно удаляться несколькими потребителями. Если коллекция становится пустой, то потоки-потребители перейдут в состояние блокировки, пока поток-создатель не добавит хотя бы один элемент. Создающий поток может вызвать CompleteAdding метод , чтобы указать, что дополнительные элементы не будут добавлены. Потребители могут отслеживать свойство IsCompleted, позволяющее определить, что коллекция опустела, а новые элементы добавляться не будут.
Add Операции и Take обычно выполняются в цикле. Вы можете отменить цикл, передав объект TryAdd в CancellationToken метод или TryTake , а затем проверив значение свойства маркера в каждой IsCancellationRequested итерации. Если значение равно true
, вы можете ответить на запрос отмены, очистовив все ресурсы и завершив цикл.
При создании BlockingCollection<T> объекта можно указать не только ограниченную емкость, но и тип используемой коллекции. Например, можно задать объект ConcurrentQueue<T> для использования принципа "первым поступил — первым обслужен", или объект ConcurrentStack<T> для использования принципа "последним поступил — первым обслужен". Использовать можно любой класс коллекции, реализующий интерфейс IProducerConsumerCollection<T>. Тип коллекции, используемый в классе BlockingCollection<T> по умолчанию — это ConcurrentQueue<T>.
Не изменяйте базовую коллекцию напрямую. Используйте BlockingCollection<T> методы для добавления или удаления элементов. Объект BlockingCollection<T> может быть поврежден, если изменить базовую коллекцию напрямую.
BlockingCollection<T> не был разработан с учетом асинхронного доступа. Если приложению требуются асинхронные сценарии производителя или потребителя, рассмотрите возможность использования Channel<T> .
Конструкторы
BlockingCollection<T>() |
Инициализирует новый экземпляр класса BlockingCollection<T> без верхней границы. |
BlockingCollection<T>(Int32) |
Инициализирует новый экземпляр класса BlockingCollection<T> с указанной верхней границей. |
BlockingCollection<T>(IProducerConsumerCollection<T>) |
Инициализирует новый экземпляр класса BlockingCollection<T> без верхней границы, используя предоставленную коллекцию IProducerConsumerCollection<T> в качестве базового хранилища данных. |
BlockingCollection<T>(IProducerConsumerCollection<T>, Int32) |
Инициализирует новый экземпляр класса BlockingCollection<T> с указанной верхней границей, используя предоставленную коллекцию IProducerConsumerCollection<T> в качестве базового хранилища данных. |
Свойства
BoundedCapacity |
Получает предельную емкость данного экземпляра BlockingCollection<T>. |
Count |
Возвращает число элементов, содержащихся в списке BlockingCollection<T>. |
IsAddingCompleted |
Возвращает значение, указывающее, помечена ли данная коллекция BlockingCollection<T> как закрытая для добавления элементов. |
IsCompleted |
Возвращает значение, указывающее, помечена ли данная коллекция BlockingCollection<T> как закрытая для добавления элементов и является ли она пустой. |
Методы
Add(T) |
Добавляет элемент в коллекцию BlockingCollection<T>. |
Add(T, CancellationToken) |
Добавляет элемент в коллекцию BlockingCollection<T>. |
AddToAny(BlockingCollection<T>[], T) |
Добавляет указанный элемент в один из указанных экземпляров BlockingCollection<T>. |
AddToAny(BlockingCollection<T>[], T, CancellationToken) |
Добавляет указанный элемент в один из указанных экземпляров BlockingCollection<T>. |
CompleteAdding() |
Помечает экземпляры BlockingCollection<T> как не допускающие добавления дополнительных элементов. |
CopyTo(T[], Int32) |
Копирует все элементы из экземпляра BlockingCollection<T> в совместимый одномерный массив начиная с указанного индекса в целевом массиве. |
Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса BlockingCollection<T>. |
Dispose(Boolean) |
Освобождает ресурсы, используемые экземпляром BlockingCollection<T>. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetConsumingEnumerable() |
Предоставляет получающий интерфейс IEnumerable<T> для элементов коллекции. |
GetConsumingEnumerable(CancellationToken) |
Предоставляет получающий интерфейс IEnumerable<T> для элементов коллекции. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Take() |
Удаляет элемент из BlockingCollection<T>. |
Take(CancellationToken) |
Удаляет элемент из BlockingCollection<T>. |
TakeFromAny(BlockingCollection<T>[], T) |
Извлекает элемент из любого из указанных экземпляров BlockingCollection<T>. |
TakeFromAny(BlockingCollection<T>[], T, CancellationToken) |
Извлекает элемент из любого из указанных экземпляров BlockingCollection<T>, контролируя указанный маркер отмены. |
ToArray() |
Копирует элементы из экземпляра BlockingCollection<T> в новый массив. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
TryAdd(T) |
Пытается добавить указанный элемент в BlockingCollection<T>. |
TryAdd(T, Int32) |
Пытается добавить указанный элемент в коллекцию BlockingCollection<T> в течение указанного периода времени. |
TryAdd(T, Int32, CancellationToken) |
Пытается добавить указанный элемент в коллекцию BlockingCollection<T> в течение указанного периода времени, контролируя маркер отмены. |
TryAdd(T, TimeSpan) |
Пытается добавить указанный элемент в BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T) |
Пытается добавить указанный элемент к одному из указанных экземпляров BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, Int32) |
Пытается добавить указанный элемент к одному из указанных экземпляров BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Пытается добавить указанный элемент к одному из указанных экземпляров BlockingCollection<T>. |
TryAddToAny(BlockingCollection<T>[], T, TimeSpan) |
Пытается добавить указанный элемент в любой из указанных экземпляров BlockingCollection<T>, контролируя указанный маркер отмены. |
TryTake(T) |
Пытается удалить элемент из коллекции BlockingCollection<T>. |
TryTake(T, Int32) |
Пытается удалить элемент из коллекции BlockingCollection<T> в течение указанного периода времени. |
TryTake(T, Int32, CancellationToken) |
Пытается удалить элемент из коллекции BlockingCollection<T> в течение указанного периода времени, контролируя маркер отмены. |
TryTake(T, TimeSpan) |
Пытается удалить элемент из коллекции BlockingCollection<T> в течение указанного периода времени. |
TryTakeFromAny(BlockingCollection<T>[], T) |
Пытается удалить элемент из любого из указанных экземпляров BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Пытается удалить элемент из любого из указанных экземпляров BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Пытается удалить элемент из любого из указанных экземпляров BlockingCollection<T>. |
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Пытается удалить элемент из любого из указанных экземпляров BlockingCollection<T>. |
Явные реализации интерфейса
ICollection.CopyTo(Array, Int32) |
Копирует все элементы из экземпляра BlockingCollection<T> в совместимый одномерный массив начиная с указанного индекса в целевом массиве. |
ICollection.IsSynchronized |
Возвращает значение, показывающее, является ли доступ к коллекции ICollection синхронизированным (потокобезопасным). |
ICollection.SyncRoot |
Получает объект, с помощью которого можно синхронизировать доступ к коллекции ICollection. Данное свойство не поддерживается. |
IEnumerable.GetEnumerator() |
Предоставляет интерфейс IEnumerator для элементов коллекции. |
IEnumerable<T>.GetEnumerator() |
Предоставляет интерфейс IEnumerator<T> для элементов коллекции. |
Методы расширения
ToFrozenDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Создает из FrozenDictionary<TKey,TValue> объекта в соответствии с указанной IEnumerable<T> функцией селектора ключей. |
ToFrozenDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Создает словарь FrozenDictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданными функциями селектора ключа и селектора элемента. |
ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>) |
Создает с FrozenSet<T> указанными значениями. |
ToImmutableArray<TSource>(IEnumerable<TSource>) |
Создает неизменяемый массив на основе указанной коллекции. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Создает неизменяемый словарь на основе существующей коллекции элементов, применяя функцию преобразования к исходным ключам. |
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Создает неизменяемый словарь на основе последовательности, подвергнутой определенному преобразованию. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Выполняет перечисление и преобразование последовательности и создает неизменяемый словарь на основе ее содержимого. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>) |
Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый словарь с использованием указанной функции сравнения ключей. |
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>) |
Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый словарь с использованием указанных функций сравнения ключей и значений. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>) |
Выполняет перечисление последовательности и создает неизменяемый набор хэширования на основе ее содержимого. |
ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Выполняет перечисление последовательности, создает неизменяемый набор хэширования на основе ее содержимого и использует указанную функцию сравнения для типа набора. |
ToImmutableList<TSource>(IEnumerable<TSource>) |
Выполняет перечисление последовательности и создает неизменяемый список на основе ее содержимого. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Выполняет перечисление и преобразование последовательности и создает неизменяемый отсортированный словарь на основе ее содержимого. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>) |
Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый отсортированный словарь с использованием указанной функции сравнения ключей. |
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>) |
Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый отсортированный словарь с использованием указанных функций сравнения ключей и значений. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>) |
Выполняет перечисление последовательности и создает неизменяемый отсортированный набор на основе ее содержимого. |
ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Выполняет перечисление последовательности, создает неизменяемый отсортированный набор на основе ее содержимого и использует указанную функцию сравнения. |
CopyToDataTable<T>(IEnumerable<T>) |
Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр |
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Применяет к последовательности агрегатную функцию. |
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Применяет к последовательности агрегатную функцию. Указанное начальное значение используется в качестве исходного значения агрегатной операции. |
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Применяет к последовательности агрегатную функцию. Указанное начальное значение служит исходным значением для агрегатной операции, а указанная функция используется для выбора результирующего значения. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Предоставляет возможности блокировки и ограничения для потокобезопасных коллекций, реализующих IProducerConsumerCollection<T>. |
AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Предоставляет возможности блокировки и ограничения для потокобезопасных коллекций, реализующих IProducerConsumerCollection<T>. |
All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Проверяет, все ли элементы последовательности удовлетворяют условию. |
Any<TSource>(IEnumerable<TSource>) |
Проверяет, содержит ли последовательность какие-либо элементы. |
Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Проверяет, удовлетворяет ли какой-либо элемент последовательности заданному условию. |
Append<TSource>(IEnumerable<TSource>, TSource) |
Добавляет значение в конец последовательности. |
AsEnumerable<TSource>(IEnumerable<TSource>) |
Возвращает входное значение, типизированное как IEnumerable<T>. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Вычисляет среднее для последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Вычисляет среднее для последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Вычисляет среднее для последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Вычисляет среднее для последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Вычисляет среднее для последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Вычисляет среднее для последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Вычисляет среднее для последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Вычисляет среднее для последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Вычисляет среднее для последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Вычисляет среднее для последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
Chunk<TSource>(IEnumerable<TSource>, Int32) |
Разбивает элементы последовательности на блоки размером не более |
Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Объединяет две последовательности. |
Contains<TSource>(IEnumerable<TSource>, TSource) |
Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию. |
Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
Определяет, содержит ли последовательность заданный элемент, используя указанный компаратор IEqualityComparer<T>. |
Count<TSource>(IEnumerable<TSource>) |
Возвращает количество элементов в последовательности. |
Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает число, представляющее количество элементов последовательности, удовлетворяющих заданному условию. |
CountBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Предоставляет возможности блокировки и ограничения для потокобезопасных коллекций, реализующих IProducerConsumerCollection<T>. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>) |
Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую значение параметра типа по умолчанию, если последовательность пуста. |
DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую указанное значение, если последовательность пуста. |
Distinct<TSource>(IEnumerable<TSource>) |
Возвращает различающиеся элементы последовательности, используя для сравнения значений компаратор проверки на равенство по умолчанию. |
Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Возвращает различающиеся элементы последовательности, используя для сравнения значений указанный компаратор IEqualityComparer<T>. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Возвращает отдельные элементы последовательности в соответствии с указанной функцией селектора ключей. |
DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Возвращает отдельные элементы последовательности в соответствии с указанной функцией селектора ключей и использует указанный компаратор для сравнения ключей. |
ElementAt<TSource>(IEnumerable<TSource>, Index) |
Возвращает элемент по указанному индексу в последовательности. |
ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Возвращает элемент по указанному индексу в последовательности. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index) |
Возвращает элемент последовательности по указанному индексу или значение по умолчанию, если индекс вне допустимого диапазона. |
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
Возвращает элемент последовательности по указанному индексу или значение по умолчанию, если индекс вне допустимого диапазона. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. |
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор IEqualityComparer<T>. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Создает разность наборов двух последовательностей в соответствии с указанной функцией селектора ключа. |
ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Создает разность наборов двух последовательностей в соответствии с указанной функцией селектора ключа. |
First<TSource>(IEnumerable<TSource>) |
Возвращает первый элемент последовательности. |
First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает первый элемент последовательности, удовлетворяющий указанному условию. |
FirstOrDefault<TSource>(IEnumerable<TSource>) |
Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. |
FirstOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Возвращает первый элемент последовательности или указанное значение по умолчанию, если последовательность не содержит элементов. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает первый элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено. |
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Возвращает первый элемент последовательности, удовлетворяющий условию, или указанное значение по умолчанию, если такой элемент не найден. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа. |
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и сравнивает ключи с помощью указанного компаратора. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и проецирует элементы каждой группы с помощью указанной функции. |
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Группирует элементы последовательности в соответствии с функцией селектора ключа. Ключи сравниваются с помощью компаратора, элементы каждой группы проецируются с помощью указанной функции. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) |
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. |
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) |
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Ключи сравниваются с использованием заданного компаратора. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) |
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Элементы каждой группы проецируются с помощью указанной функции. |
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>) |
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Значения ключей сравниваются с помощью указанного компаратора, элементы каждой группы проецируются с помощью указанной функции. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>) |
Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты. Для сравнения ключей используется компаратор проверки на равенство по умолчанию. |
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>) |
Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты. Для сравнения ключей используется указанный компаратор IEqualityComparer<T>. |
Index<TSource>(IEnumerable<TSource>) |
Предоставляет возможности блокировки и ограничения для потокобезопасных коллекций, реализующих IProducerConsumerCollection<T>. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. |
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор IEqualityComparer<T>. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Создает набор пересечения двух последовательностей в соответствии с указанной функцией селектора ключей. |
IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Создает набор пересечения двух последовательностей в соответствии с указанной функцией селектора ключей. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей. Для сравнения ключей используется компаратор проверки на равенство по умолчанию. |
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей. Для сравнения ключей используется указанный компаратор IEqualityComparer<T>. |
Last<TSource>(IEnumerable<TSource>) |
Возвращает последний элемент последовательности. |
Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает последний элемент последовательности, удовлетворяющий указанному условию. |
LastOrDefault<TSource>(IEnumerable<TSource>) |
Возвращает последний элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. |
LastOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Возвращает последний элемент последовательности или указанное значение по умолчанию, если последовательность не содержит элементов. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает последний элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено. |
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Возвращает последний элемент последовательности, удовлетворяющий условию, или указанное значение по умолчанию, если такой элемент не найден. |
LongCount<TSource>(IEnumerable<TSource>) |
Возвращает значение типа Int64, представляющее общее число элементов в последовательности. |
LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает значение типа Int64, представляющее число элементов последовательности, удовлетворяющих заданному условию. |
Max<TSource>(IEnumerable<TSource>) |
Возвращает максимальное значение, содержащееся в универсальной последовательности. |
Max<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Возвращает максимальное значение, содержащееся в универсальной последовательности. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Decimal. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Double. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Int32. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Int64. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Decimal обнуляемого типа. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Double обнуляемого типа. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Int32 обнуляемого типа. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Int64 обнуляемого типа. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Single обнуляемого типа. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Single. |
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Вызывает функцию преобразования для каждого элемента универсальной последовательности и возвращает максимальное результирующее значение. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Возвращает максимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключа. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Возвращает максимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключей и компаратором ключей. |
Min<TSource>(IEnumerable<TSource>) |
Возвращает минимальное значение, содержащееся в универсальной последовательности. |
Min<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Возвращает минимальное значение, содержащееся в универсальной последовательности. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Decimal. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Double. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Int32. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Int64. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Decimal обнуляемого типа. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Double обнуляемого типа. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Int32 обнуляемого типа. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Int64 обнуляемого типа. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Single обнуляемого типа. |
Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Single. |
Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Вызывает функцию преобразования для каждого элемента универсальной последовательности и возвращает минимальное результирующее значение. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Возвращает минимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключа. |
MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Возвращает минимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключей и компаратором ключей. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
Order<T>(IEnumerable<T>) |
Сортирует элементы последовательности в порядке возрастания. |
Order<T>(IEnumerable<T>, IComparer<T>) |
Сортирует элементы последовательности в порядке возрастания. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Сортирует элементы последовательности в порядке возрастания ключа. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Сортирует элементы последовательности в порядке возрастания с использованием указанного компаратора. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Сортирует элементы последовательности в порядке убывания ключа. |
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Сортирует элементы последовательности в порядке убывания с использованием указанного компаратора. |
OrderDescending<T>(IEnumerable<T>) |
Сортирует элементы последовательности в порядке убывания. |
OrderDescending<T>(IEnumerable<T>, IComparer<T>) |
Сортирует элементы последовательности в порядке убывания. |
Prepend<TSource>(IEnumerable<TSource>, TSource) |
Добавляет значение в начало последовательности. |
Reverse<TSource>(IEnumerable<TSource>) |
Изменяет порядок элементов последовательности на противоположный. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Проецирует каждый элемент последовательности в новую форму. |
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Проецирует каждый элемент последовательности в новую форму, добавляя индекс элемента. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
Проецирует каждый элемент последовательности в объект IEnumerable<T> и объединяет результирующие последовательности в одну последовательность. |
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
Проецирует каждый элемент последовательности в объект IEnumerable<T> и объединяет результирующие последовательности в одну последовательность. Индекс каждого элемента исходной последовательности используется в проецированной форме этого элемента. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Проецирует каждый элемент последовательности в объект IEnumerable<T>, объединяет результирующие последовательности в одну и вызывает функцию селектора результата для каждого элемента этой последовательности. |
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Проецирует каждый элемент последовательности в объект IEnumerable<T>, объединяет результирующие последовательности в одну и вызывает функцию селектора результата для каждого элемента этой последовательности. Индекс каждого элемента исходной последовательности используется в промежуточной проецированной форме этого элемента. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Определяет, совпадают ли две последовательности, используя для сравнения элементов компаратор проверки на равенство по умолчанию, предназначенный для их типа. |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Определяет, совпадают ли две последовательности, используя для сравнения элементов указанный компаратор IEqualityComparer<T>. |
Single<TSource>(IEnumerable<TSource>) |
Возвращает единственный элемент последовательности и генерирует исключение, если число элементов последовательности отлично от 1. |
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает единственный элемент последовательности, удовлетворяющий указанному условию, и вызывает исключение, если таких элементов больше одного. |
SingleOrDefault<TSource>(IEnumerable<TSource>) |
Возвращает единственный элемент последовательности или значение по умолчанию, если последовательность пуста; если в последовательности более одного элемента, генерируется исключение. |
SingleOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Возвращает единственный элемент последовательности или указанное значение по умолчанию, если последовательность пуста; Этот метод создает исключение, если в последовательности содержится несколько элементов. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает единственный элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если такого элемента не существует; если условию удовлетворяет более одного элемента, вызывается исключение. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Возвращает единственный элемент последовательности, удовлетворяющий указанному условию, или заданное значение по умолчанию, если такого элемента не существует; Этот метод создает исключение, если условию удовлетворяет несколько элементов. |
Skip<TSource>(IEnumerable<TSource>, Int32) |
Пропускает заданное число элементов в последовательности и возвращает остальные элементы. |
SkipLast<TSource>(IEnumerable<TSource>, Int32) |
Возвращает новую перечислимую коллекцию, содержащую элементы из |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы. Индекс элемента используется в логике функции предиката. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Вычисляет сумму последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Вычисляет сумму последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Вычисляет сумму последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Вычисляет сумму последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Вычисляет сумму последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Вычисляет сумму последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Вычисляет сумму последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Вычисляет сумму последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Вычисляет сумму последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Вычисляет сумму последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. |
Take<TSource>(IEnumerable<TSource>, Int32) |
Возвращает указанное число подряд идущих элементов с начала последовательности. |
Take<TSource>(IEnumerable<TSource>, Range) |
Возвращает указанный диапазон смежных элементов из последовательности. |
TakeLast<TSource>(IEnumerable<TSource>, Int32) |
Возвращает новую перечислимую коллекцию, содержащую последние |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию. Индекс элемента используется в логике функции предиката. |
ToArray<TSource>(IEnumerable<TSource>) |
Создает массив из объекта IEnumerable<T>. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа. |
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа и компаратором ключей. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданными функциями селектора ключа и селектора элемента. |
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Создает словарь Dictionary<TKey,TValue> из объекта IEnumerable<T> в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента. |
ToHashSet<TSource>(IEnumerable<TSource>) |
Создает HashSet<T> из IEnumerable<T>. |
ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Создает HashSet<T> из IEnumerable<T> с использованием |
ToList<TSource>(IEnumerable<TSource>) |
Создает List<T> из IEnumerable<T>. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Создает словарь Lookup<TKey,TElement> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа. |
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Создает словарь Lookup<TKey,TElement> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа и компаратором ключей. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Создает словарь Lookup<TKey,TElement> из объекта IEnumerable<T> в соответствии с заданными функциями селектора ключа и селектора элемента. |
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Создает объект Lookup<TKey,TElement> из объекта IEnumerable<T> в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента. |
TryGetNonEnumeratedCount<TSource>(IEnumerable<TSource>, Int32) |
Пытается определить количество элементов в последовательности без принудительного перечисления. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Находит объединение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. |
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Находит объединение множеств, представленных двумя последовательностями, используя указанный компаратор IEqualityComparer<T>. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>) |
Создает объединение наборов двух последовательностей в соответствии с указанной функцией селектора ключей. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Создает объединение наборов двух последовательностей в соответствии с указанной функцией селектора ключей. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Выполняет фильтрацию последовательности значений на основе заданного предиката. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Выполняет фильтрацию последовательности значений на основе заданного предиката. Индекс каждого элемента используется в логике функции предиката. |
Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>) |
Создает последовательность кортежей с элементами из двух указанных последовательностей. |
Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>) |
Создает последовательность кортежей с элементами из трех указанных последовательностей. |
Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>) |
Применяет указанную функцию к соответствующим элементам двух последовательностей, что дает последовательность результатов. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsParallel<TSource>(IEnumerable<TSource>) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |
AsQueryable<TElement>(IEnumerable<TElement>) |
Преобразовывает универсальный объект IEnumerable<T> в универсальный объект IQueryable<T>. |
Ancestors<T>(IEnumerable<T>) |
Возвращает коллекцию элементов, содержащую предков каждого узла в исходной коллекции. |
Ancestors<T>(IEnumerable<T>, XName) |
Возвращает отфильтрованную коллекцию элементов, содержащую предков каждого узла в исходной коллекции. В коллекцию включаются только элементы, соответствующие XName. |
DescendantNodes<T>(IEnumerable<T>) |
Возвращает коллекцию подчиненных узлов каждого документа и элемента в исходной коллекции. |
Descendants<T>(IEnumerable<T>) |
Возвращает коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции. |
Descendants<T>(IEnumerable<T>, XName) |
Возвращает отфильтрованную коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции. В коллекцию включаются только элементы, соответствующие XName. |
Elements<T>(IEnumerable<T>) |
Возвращает коллекцию дочерних элементов каждого элемента и документа в исходной коллекции. |
Elements<T>(IEnumerable<T>, XName) |
Возвращает отфильтрованную коллекцию дочерних элементов каждого элемента и документа в исходной коллекции. В коллекцию включаются только элементы, соответствующие XName. |
InDocumentOrder<T>(IEnumerable<T>) |
Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов. |
Nodes<T>(IEnumerable<T>) |
Возвращает коллекцию дочерних узлов каждого документа и элемента в исходной коллекции. |
Remove<T>(IEnumerable<T>) |
Удаление каждого узла в исходной коллекции из родительского узла. |
Применяется к
Потокобезопасность
Метод Dispose не является потокобезопасным. Все остальные общедоступные и защищенные члены BlockingCollection<T> являются потокобезопасными и могут использоваться одновременно из нескольких потоков.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по