다음을 통해 공유


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> 다음을 제공하는 스레드로부터 안전한 컬렉션 클래스입니다.

중요하다

이 형식은 IDisposable 인터페이스를 구현합니다. 형식 사용을 마쳤으면 직접 또는 간접적으로 삭제해야 합니다. 형식을 직접 삭제하려면 try/catch 블록에서 해당 Dispose 메서드를 호출합니다. 간접적으로 삭제하려면 using(C#) 또는 Using(Visual Basic)와 같은 언어 구문을 사용합니다. 자세한 내용은 IDisposable 인터페이스 항목의 "IDisposable을 구현하는 개체 사용" 섹션을 참조하세요. 또한 Dispose() 메서드는 스레드로부터 안전하지 않습니다. 다른 모든 공용 및 보호된 BlockingCollection<T> 멤버는 스레드로부터 안전하며 여러 스레드에서 동시에 사용할 수 있습니다.

IProducerConsumerCollection<T> 스레드로부터 안전한 데이터 추가 및 제거를 허용하는 컬렉션을 나타냅니다. BlockingCollection<T> IProducerConsumerCollection<T> 인스턴스의 래퍼로 사용되며, 데이터를 제거할 수 있을 때까지 컬렉션에서 제거 시도를 차단할 수 있습니다. 마찬가지로 IProducerConsumerCollection<T>허용된 데이터 요소 수에 상한을 적용하는 BlockingCollection<T> 만들 수 있습니다. 컬렉션에 대한 추가 시도는 추가된 항목을 저장할 공간을 사용할 수 있을 때까지 차단될 수 있습니다. 이러한 방식으로 BlockingCollection<T> 기본 데이터 스토리지 메커니즘이 IProducerConsumerCollection<T>추상화된다는 점을 제외하고 기존의 차단 큐 데이터 구조와 유사합니다.

BlockingCollection<T> 경계 및 차단을 지원합니다. 경계는 컬렉션의 최대 용량을 설정할 수 있음을 의미합니다. 경계는 메모리에서 컬렉션의 최대 크기를 제어할 수 있고 생성 스레드가 소비 스레드보다 너무 멀리 이동하지 못하도록 하기 때문에 특정 시나리오에서 중요합니다. 여러 스레드 또는 태스크가 동시에 컬렉션에 항목을 추가할 수 있으며 컬렉션이 지정된 최대 용량에 도달하면 항목이 제거될 때까지 생성 스레드가 차단됩니다. 여러 소비자가 동시에 항목을 제거할 수 있으며 컬렉션이 비어 있으면 생산자가 항목을 추가할 때까지 소비 스레드가 차단됩니다. 생성 스레드는 더 이상 항목이 추가되지 않음을 나타내기 위해 CompleteAdding 메서드를 호출할 수 있습니다. 소비자는 컬렉션이 비어 있고 더 이상 항목이 추가되지 않는 시기를 알 수 있도록 IsCompleted 속성을 모니터링합니다.

AddTake 작업은 일반적으로 루프에서 수행됩니다. CancellationToken 개체를 TryAdd 또는 TryTake 메서드에 전달한 다음 각 반복에서 토큰의 IsCancellationRequested 속성 값을 확인하여 루프를 취소할 수 있습니다. 값이 true경우 리소스를 정리하고 루프를 종료하여 취소 요청에 응답해야 합니다.

BlockingCollection<T> 개체를 만들 때는 제한된 용량뿐만 아니라 사용할 컬렉션 유형도 지정할 수 있습니다. 예를 들어 FIFO(선입선행) 동작에 대한 ConcurrentQueue<T> 개체 또는 LIFO(last in, first out) 동작에 대한 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>)

상한 없이 제공된 IProducerConsumerCollection<T> 기본 데이터 저장소로 사용하여 BlockingCollection<T> 클래스의 새 인스턴스를 초기화합니다.

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

지정된 상한을 사용하여 제공된 IProducerConsumerCollection<T> 기본 데이터 저장소로 사용하여 BlockingCollection<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> 인스턴스의 모든 항목을 대상 배열의 지정된 인덱스에서 시작하여 호환되는 1차원 배열에 복사합니다.

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> 인스턴스의 모든 항목을 대상 배열의 지정된 인덱스에서 시작하여 호환되는 1차원 배열에 복사합니다.

ICollection.IsSynchronized

ICollection 대한 액세스가 동기화되는지 여부를 나타내는 값을 가져옵니다(스레드로부터 안전).

ICollection.SyncRoot

ICollection대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다. 이 속성은 지원되지 않습니다.

IEnumerable.GetEnumerator()

컬렉션의 항목에 대한 IEnumerator 제공합니다.

IEnumerable<T>.GetEnumerator()

컬렉션의 항목에 대한 IEnumerator<T> 제공합니다.

확장 메서드

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

지정된 키 선택기 함수에 따라 IEnumerable<T>FrozenDictionary<TKey,TValue> 만듭니다.

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

지정된 키 선택기 및 요소 선택기 함수에 따라 IEnumerable<T>FrozenDictionary<TKey,TValue> 만듭니다.

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>)

제네릭 매개 변수 TDataRow입력 IEnumerable<T> 개체가 지정된 경우 DataRow 개체의 복사본을 포함하는 DataTable 반환합니다.

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

제네릭 매개 변수 TDataRow입력 IEnumerable<T> 개체가 지정된 DataTableDataRow 개체를 복사합니다.

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

제네릭 매개 변수 TDataRow입력 IEnumerable<T> 개체가 지정된 DataTableDataRow 개체를 복사합니다.

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>>)

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Decimal 값 시퀀스의 평균을 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Double 값 시퀀스의 평균을 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Int32 값 시퀀스의 평균을 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Int64 값 시퀀스의 평균을 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Single 값 시퀀스의 평균을 계산합니다.

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

입력 시퀀스의 각 요소에 대해 변환 함수를 호출하여 얻은 Single 값 시퀀스의 평균을 계산합니다.

Cast<TResult>(IEnumerable)

IEnumerable 요소를 지정된 형식으로 캐스팅합니다.

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

시퀀스의 요소를 최대 size크기의 청크로 분할합니다.

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>)

시퀀스가 비어 있는 경우 지정된 시퀀스의 요소 또는 singleton 컬렉션에서 형식 매개 변수의 기본값을 반환합니다.

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>)

요소의 인덱스를 튜플에 통합하는 열거형을 반환합니다.

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>>)

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최대 null 허용 Decimal 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최대 null 허용 Double 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최대 null 허용 Int32 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최대 null 허용 Int64 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최대 null 허용 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>>)

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최소 null 허용 Decimal 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최소 null 허용 Double 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최소 null 허용 Int32 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최소 null 허용 Int64 값을 반환합니다.

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

시퀀스의 각 요소에 대해 변환 함수를 호출하고 최소 null 허용 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>)

시퀀스의 유일한 요소를 반환하고 시퀀스에 정확히 하나의 요소가 없는 경우 예외를 throw합니다.

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

지정된 조건을 충족하는 시퀀스의 유일한 요소를 반환하고 이러한 요소가 둘 이상 있는 경우 예외를 throw합니다.

SingleOrDefault<TSource>(IEnumerable<TSource>)

시퀀스의 유일한 요소를 반환하거나 시퀀스가 비어 있으면 기본값을 반환합니다. 시퀀스에 요소가 두 개 이상 있는 경우 이 메서드는 예외를 throw합니다.

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

시퀀스의 유일한 요소를 반환하거나 시퀀스가 비어 있으면 지정된 기본값을 반환합니다. 시퀀스에 요소가 두 개 이상 있는 경우 이 메서드는 예외를 throw합니다.

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

지정된 조건을 충족하는 시퀀스의 유일한 요소 또는 이러한 요소가 없는 경우 기본값을 반환합니다. 이 메서드는 둘 이상의 요소가 조건을 충족하는 경우 예외를 throw합니다.

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

지정된 조건을 충족하는 시퀀스의 유일한 요소를 반환하거나, 이러한 요소가 없으면 지정된 기본값을 반환합니다. 이 메서드는 둘 이상의 요소가 조건을 충족하는 경우 예외를 throw합니다.

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

시퀀스에서 지정된 개수의 요소를 바이패스한 다음 나머지 요소를 반환합니다.

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

소스 컬렉션의 마지막 count 요소가 생략된 source 요소가 들어 있는 새 열거 가능한 컬렉션을 반환합니다.

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

지정된 조건이 true인 한 시퀀스의 요소를 바이패스한 다음 나머지 요소를 반환합니다.

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

지정된 조건이 true인 한 시퀀스의 요소를 바이패스한 다음 나머지 요소를 반환합니다. 요소의 인덱스는 조건자 함수의 논리에 사용됩니다.

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>>)

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Decimal 값 시퀀스의 합계를 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Double 값 시퀀스의 합계를 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Int32 값 시퀀스의 합계를 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Int64 값 시퀀스의 합계를 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 nullable Single 값 시퀀스의 합계를 계산합니다.

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

입력 시퀀스의 각 요소에서 변환 함수를 호출하여 얻은 Single 값 시퀀스의 합계를 계산합니다.

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

시퀀스 시작부터 지정된 수의 연속 요소를 반환합니다.

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

시퀀스에서 지정된 연속 요소 범위를 반환합니다.

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

source마지막 count 요소가 들어 있는 새 열거 가능한 컬렉션을 반환합니다.

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

지정된 조건이 true이면 시퀀스에서 요소를 반환합니다.

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

지정된 조건이 true이면 시퀀스에서 요소를 반환합니다. 요소의 인덱스는 조건자 함수의 논리에 사용됩니다.

ToArray<TSource>(IEnumerable<TSource>)

IEnumerable<T>배열을 만듭니다.

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

지정된 키 선택기 함수에 따라 IEnumerable<T>Dictionary<TKey,TValue> 만듭니다.

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

지정된 키 선택기 함수 및 키 비교자에 따라 IEnumerable<T>Dictionary<TKey,TValue> 만듭니다.

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

지정된 키 선택기 및 요소 선택기 함수에 따라 IEnumerable<T>Dictionary<TKey,TValue> 만듭니다.

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

지정된 키 선택기 함수, 비교자 및 요소 선택기 함수에 따라 IEnumerable<T>Dictionary<TKey,TValue> 만듭니다.

ToHashSet<TSource>(IEnumerable<TSource>)

IEnumerable<T> HashSet<T> 만듭니다.

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

comparer 사용하여 키를 비교하는 IEnumerable<T>HashSet<T> 만듭니다.

ToList<TSource>(IEnumerable<TSource>)

IEnumerable<T> List<T> 만듭니다.

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

지정된 키 선택기 함수에 따라 IEnumerable<T>Lookup<TKey,TElement> 만듭니다.

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

지정된 키 선택기 함수 및 키 비교자에 따라 IEnumerable<T>Lookup<TKey,TElement> 만듭니다.

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

지정된 키 선택기 및 요소 선택기 함수에 따라 IEnumerable<T>Lookup<TKey,TElement> 만듭니다.

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

지정된 키 선택기 함수, 비교자 및 요소 선택기 함수에 따라 IEnumerable<T>Lookup<TKey,TElement> 만듭니다.

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> 멤버는 스레드로부터 안전하며 여러 스레드에서 동시에 사용할 수 있습니다.

추가 정보