Bagikan melalui


BlockingCollection<T> Kelas

Definisi

Menyediakan kemampuan pemblokiran dan pembatas untuk koleksi aman utas yang mengimplementasikan 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)

Jenis parameter

T

Jenis elemen dalam koleksi.

Warisan
BlockingCollection<T>
Atribut
Penerapan

Contoh

Contoh berikut menunjukkan cara menambahkan dan mengambil item secara bersamaan dari kumpulan pemblokiran:

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

Keterangan

BlockingCollection<T> adalah kelas pengumpulan aman utas yang menyediakan hal berikut:

Penting

Jenis ini mengimplementasikan antarmuka IDisposable. Setelah selesai menggunakan jenisnya, Anda harus membuangnya baik secara langsung maupun tidak langsung. Untuk membuang jenis secara langsung, panggil metode Dispose dalam blok try/catch. Untuk membuangnya secara tidak langsung, gunakan konstruksi bahasa seperti using (dalam C#) atau Using (di Visual Basic). Untuk informasi selengkapnya, lihat bagian "Menggunakan Objek yang Menerapkan IDisposable" di topik antarmuka IDisposable. Perhatikan juga bahwa metode Dispose() tidak aman untuk utas. Semua anggota BlockingCollection<T> publik dan terlindungi lainnya aman utas dan dapat digunakan secara bersamaan dari beberapa utas.

IProducerConsumerCollection<T> mewakili koleksi yang memungkinkan penambahan dan penghapusan data dengan aman utas. BlockingCollection<T> digunakan sebagai pembungkus untuk instans IProducerConsumerCollection<T>, dan memungkinkan upaya penghapusan dari koleksi untuk diblokir hingga data tersedia untuk dihapus. Demikian pula, Anda dapat membuat BlockingCollection<T> untuk memberlakukan batas atas pada jumlah elemen data yang diizinkan dalam IProducerConsumerCollection<T>; upaya penambahan ke koleksi kemudian dapat memblokir hingga ruang tersedia untuk menyimpan item yang ditambahkan. Dengan cara ini, BlockingCollection<T> mirip dengan struktur data antrean pemblokiran tradisional, kecuali bahwa mekanisme penyimpanan data yang mendasar diabstraksi sebagai IProducerConsumerCollection<T>.

BlockingCollection<T> mendukung pembatas dan pemblokiran. Batas berarti Anda dapat mengatur kapasitas maksimum koleksi. Pembatas penting dalam skenario tertentu karena memungkinkan Anda mengontrol ukuran maksimum koleksi dalam memori, dan mencegah utas yang dihasilkan bergerak terlalu jauh di depan utas yang mengonsumsi. Beberapa utas atau tugas dapat menambahkan item ke koleksi secara bersamaan, dan jika koleksi mencapai kapasitas maksimum yang ditentukan, utas yang dihasilkan akan memblokir hingga item dihapus. Beberapa konsumen dapat menghapus item secara bersamaan, dan jika koleksi menjadi kosong, utas yang mengonsumsi akan memblokir hingga produsen menambahkan item. Utas yang memproduksi dapat memanggil metode CompleteAdding untuk menunjukkan bahwa tidak ada lagi item yang akan ditambahkan. Konsumen memantau properti IsCompleted untuk mengetahui kapan koleksi kosong dan tidak ada lagi item yang akan ditambahkan.

operasi Add dan Take biasanya dilakukan dalam perulangan. Anda dapat membatalkan perulangan dengan meneruskan objek CancellationToken ke metode TryAdd atau TryTake, lalu memeriksa nilai properti IsCancellationRequested token pada setiap iterasi. Jika nilainya true, terserah Anda untuk menanggapi permintaan pembatalan dengan membersihkan sumber daya apa pun dan keluar dari perulangan.

Saat membuat objek BlockingCollection<T>, Anda dapat menentukan tidak hanya kapasitas terikat tetapi juga jenis koleksi yang akan digunakan. Misalnya, Anda dapat menentukan objek ConcurrentQueue<T> untuk perilaku pertama masuk, keluar pertama (FIFO), atau objek ConcurrentStack<T> untuk perilaku last in, first out (LIFO). Anda dapat menggunakan kelas koleksi apa pun yang mengimplementasikan antarmuka IProducerConsumerCollection<T>. Jenis koleksi default untuk BlockingCollection<T> adalah ConcurrentQueue<T>.

Jangan ubah koleksi yang mendasar secara langsung. Gunakan metode BlockingCollection<T> untuk menambahkan atau menghapus elemen. Objek BlockingCollection<T> dapat rusak jika Anda mengubah koleksi yang mendasar secara langsung.

BlockingCollection<T> tidak dirancang dengan mengingat akses asinkron. Jika aplikasi Anda memerlukan skenario produsen/konsumen asinkron, pertimbangkan untuk menggunakan Channel<T> sebagai gantinya.

Konstruktor

BlockingCollection<T>()

Menginisialisasi instans baru kelas BlockingCollection<T> tanpa batas atas.

BlockingCollection<T>(Int32)

Menginisialisasi instans baru kelas BlockingCollection<T> dengan batas atas yang ditentukan.

BlockingCollection<T>(IProducerConsumerCollection<T>)

Menginisialisasi instans baru kelas BlockingCollection<T> tanpa batas atas dan menggunakan IProducerConsumerCollection<T> yang disediakan sebagai penyimpanan data yang mendasarnya.

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

Menginisialisasi instans baru kelas BlockingCollection<T> dengan batas atas yang ditentukan dan menggunakan IProducerConsumerCollection<T> yang disediakan sebagai penyimpanan data yang mendasarnya.

Properti

BoundedCapacity

Mendapatkan kapasitas terikat dari instans BlockingCollection<T> ini.

Count

Mendapatkan jumlah item yang terkandung dalam BlockingCollection<T>.

IsAddingCompleted

Mendapatkan apakah BlockingCollection<T> ini telah ditandai sebagai selesai untuk ditambahkan.

IsCompleted

Mendapatkan apakah BlockingCollection<T> ini telah ditandai sebagai selesai untuk ditambahkan dan kosong.

Metode

Add(T)

Menambahkan item ke BlockingCollection<T>.

Add(T, CancellationToken)

Menambahkan item ke BlockingCollection<T>.

AddToAny(BlockingCollection<T>[], T)

Menambahkan item yang ditentukan ke salah satu instans BlockingCollection<T> yang ditentukan.

AddToAny(BlockingCollection<T>[], T, CancellationToken)

Menambahkan item yang ditentukan ke salah satu instans BlockingCollection<T> yang ditentukan.

CompleteAdding()

Menandai instans BlockingCollection<T> sebagai tidak menerima tambahan lagi.

CopyTo(T[], Int32)

Menyalin semua item dalam instans BlockingCollection<T> ke array satu dimensi yang kompatibel, dimulai dari indeks array target yang ditentukan.

Dispose()

Merilis semua sumber daya yang digunakan oleh instans kelas BlockingCollection<T> saat ini.

Dispose(Boolean)

Merilis sumber daya yang digunakan oleh instans BlockingCollection<T>.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetConsumingEnumerable()

Menyediakan IEnumerable<T> yang mengkonsumsi untuk item dalam koleksi.

GetConsumingEnumerable(CancellationToken)

Menyediakan IEnumerable<T> yang mengkonsumsi untuk item dalam koleksi.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Take()

Menghapus item dari BlockingCollection<T>.

Take(CancellationToken)

Menghapus item dari BlockingCollection<T>.

TakeFromAny(BlockingCollection<T>[], T)

Mengambil item dari salah satu instans BlockingCollection<T> yang ditentukan.

TakeFromAny(BlockingCollection<T>[], T, CancellationToken)

Mengambil item dari salah satu instans BlockingCollection<T> yang ditentukan saat mengamati token pembatalan yang ditentukan.

ToArray()

Menyalin item dari instans BlockingCollection<T> ke dalam array baru.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TryAdd(T)

Mencoba menambahkan item yang ditentukan ke BlockingCollection<T>.

TryAdd(T, Int32)

Mencoba menambahkan item yang ditentukan ke BlockingCollection<T> dalam periode waktu yang ditentukan.

TryAdd(T, Int32, CancellationToken)

Mencoba menambahkan item yang ditentukan ke BlockingCollection<T> dalam periode waktu yang ditentukan, sambil mengamati token pembatalan.

TryAdd(T, TimeSpan)

Mencoba menambahkan item yang ditentukan ke BlockingCollection<T>.

TryAddToAny(BlockingCollection<T>[], T)

Mencoba menambahkan item yang ditentukan ke salah satu instans BlockingCollection<T> yang ditentukan.

TryAddToAny(BlockingCollection<T>[], T, Int32)

Mencoba menambahkan item yang ditentukan ke salah satu instans BlockingCollection<T> yang ditentukan.

TryAddToAny(BlockingCollection<T>[], T, Int32, CancellationToken)

Mencoba menambahkan item yang ditentukan ke salah satu instans BlockingCollection<T> yang ditentukan.

TryAddToAny(BlockingCollection<T>[], T, TimeSpan)

Mencoba menambahkan item yang ditentukan ke salah satu instans BlockingCollection<T> yang ditentukan sambil mengamati token pembatalan yang ditentukan.

TryTake(T)

Mencoba menghapus item dari BlockingCollection<T>.

TryTake(T, Int32)

Mencoba menghapus item dari BlockingCollection<T> dalam periode waktu yang ditentukan.

TryTake(T, Int32, CancellationToken)

Mencoba menghapus item dari BlockingCollection<T> dalam periode waktu yang ditentukan saat mengamati token pembatalan.

TryTake(T, TimeSpan)

Mencoba menghapus item dari BlockingCollection<T> dalam periode waktu yang ditentukan.

TryTakeFromAny(BlockingCollection<T>[], T)

Mencoba menghapus item dari salah satu instans BlockingCollection<T> yang ditentukan.

TryTakeFromAny(BlockingCollection<T>[], T, Int32)

Mencoba menghapus item dari salah satu instans BlockingCollection<T> yang ditentukan.

TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)

Mencoba menghapus item dari salah satu instans BlockingCollection<T> yang ditentukan.

TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)

Mencoba menghapus item dari salah satu instans BlockingCollection<T> yang ditentukan.

Implementasi Antarmuka Eksplisit

ICollection.CopyTo(Array, Int32)

Menyalin semua item dalam instans BlockingCollection<T> ke array satu dimensi yang kompatibel, dimulai dari indeks array target yang ditentukan.

ICollection.IsSynchronized

Mendapatkan nilai yang menunjukkan apakah akses ke ICollection disinkronkan (utas aman).

ICollection.SyncRoot

Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke ICollection. Properti ini tidak didukung.

IEnumerable.GetEnumerator()

Menyediakan IEnumerator untuk item dalam koleksi.

IEnumerable<T>.GetEnumerator()

Menyediakan IEnumerator<T> untuk item dalam koleksi.

Metode Ekstensi

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

Membuat FrozenDictionary<TKey,TValue> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci yang ditentukan.

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

Membuat FrozenDictionary<TKey,TValue> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci dan pemilih elemen yang ditentukan.

ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>)

Membuat FrozenSet<T> dengan nilai yang ditentukan.

ToImmutableArray<TSource>(IEnumerable<TSource>)

Membuat array yang tidak dapat diubah dari koleksi yang ditentukan.

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

Membangun kamus yang tidak dapat diubah dari kumpulan elemen yang ada, menerapkan fungsi transformasi ke kunci sumber.

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

Membangun kamus yang tidak dapat diubah berdasarkan beberapa transformasi urutan.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Menghitung dan mengubah urutan, dan menghasilkan kamus kontennya yang tidak dapat diubah.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>)

Menghitung dan mengubah urutan, dan menghasilkan kamus kontennya yang tidak dapat diubah dengan menggunakan pembanding kunci yang ditentukan.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>)

Menghitung dan mengubah urutan, dan menghasilkan kamus kontennya yang tidak dapat diubah dengan menggunakan pembanding kunci dan nilai yang ditentukan.

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

Menghitung urutan dan menghasilkan kumpulan hash kontennya yang tidak dapat diubah.

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

Menghitung urutan, menghasilkan set hash yang tidak dapat diubah dari kontennya, dan menggunakan perbandingan kesetaraan yang ditentukan untuk jenis yang ditetapkan.

ToImmutableList<TSource>(IEnumerable<TSource>)

Menghitung urutan dan menghasilkan daftar kontennya yang tidak dapat diubah.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Menghitung dan mengubah urutan, dan menghasilkan kamus kontennya yang diurutkan tidak dapat diubah.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>)

Menghitung dan mengubah urutan, dan menghasilkan kamus yang diurutkan yang tidak dapat diubah dari kontennya dengan menggunakan pembanding kunci yang ditentukan.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>)

Menghitung dan mengubah urutan, dan menghasilkan kamus yang diurutkan yang tidak dapat diubah dari kontennya dengan menggunakan pembanding kunci dan nilai yang ditentukan.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

Menghitung urutan dan menghasilkan sekumpulan kontennya yang diurutkan yang tidak dapat diubah.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Menghitung urutan, menghasilkan kumpulan kontennya yang diurutkan yang tidak dapat diubah, dan menggunakan pembanding yang ditentukan.

CopyToDataTable<T>(IEnumerable<T>)

Mengembalikan DataTable yang berisi salinan objek DataRow, mengingat objek IEnumerable<T> input di mana parameter generik TDataRow.

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

Menyalin objek DataRow ke DataTableyang ditentukan , mengingat objek IEnumerable<T> input di mana parameter generik TDataRow.

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

Menyalin objek DataRow ke DataTableyang ditentukan , mengingat objek IEnumerable<T> input di mana parameter generik TDataRow.

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)

Menerapkan fungsi akumulator secara berurutan.

Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

Menerapkan fungsi akumulator secara berurutan. Nilai seed yang ditentukan digunakan sebagai nilai akumulator awal.

Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

Menerapkan fungsi akumulator secara berurutan. Nilai seed yang ditentukan digunakan sebagai nilai akumulator awal, dan fungsi yang ditentukan digunakan untuk memilih nilai hasil.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Menyediakan kemampuan pemblokiran dan pembatas untuk koleksi aman utas yang mengimplementasikan IProducerConsumerCollection<T>.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Menyediakan kemampuan pemblokiran dan pembatas untuk koleksi aman utas yang mengimplementasikan IProducerConsumerCollection<T>.

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

Menentukan apakah semua elemen urutan memenuhi suatu kondisi.

Any<TSource>(IEnumerable<TSource>)

Menentukan apakah urutan berisi elemen apa pun.

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

Menentukan apakah ada elemen urutan yang memenuhi kondisi.

Append<TSource>(IEnumerable<TSource>, TSource)

Menambahkan nilai ke akhir urutan.

AsEnumerable<TSource>(IEnumerable<TSource>)

Mengembalikan input yang ditik sebagai IEnumerable<T>.

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

Menghitung rata-rata urutan nilai Decimal yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Double yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Int32 yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Int64 yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Decimal nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Double nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Int32 nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Int64 nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Single nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung rata-rata urutan nilai Single yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

Cast<TResult>(IEnumerable)

Melemparkan elemen IEnumerable ke jenis yang ditentukan.

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

Membagi elemen urutan menjadi potongan ukuran paling banyak size.

Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Menggabungkan dua urutan.

Contains<TSource>(IEnumerable<TSource>, TSource)

Menentukan apakah urutan berisi elemen tertentu dengan menggunakan perbandingan kesetaraan default.

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

Menentukan apakah urutan berisi elemen tertentu dengan menggunakan IEqualityComparer<T>tertentu .

Count<TSource>(IEnumerable<TSource>)

Mengembalikan jumlah elemen secara berurutan.

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

Mengembalikan angka yang menunjukkan berapa banyak elemen dalam urutan yang ditentukan memenuhi kondisi.

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

Menyediakan kemampuan pemblokiran dan pembatas untuk koleksi aman utas yang mengimplementasikan IProducerConsumerCollection<T>.

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Mengembalikan elemen urutan yang ditentukan atau nilai default parameter jenis dalam koleksi singleton jika urutannya kosong.

DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)

Mengembalikan elemen urutan yang ditentukan atau nilai yang ditentukan dalam koleksi singleton jika urutannya kosong.

Distinct<TSource>(IEnumerable<TSource>)

Mengembalikan elemen yang berbeda dari urutan dengan menggunakan perbandingan kesetaraan default untuk membandingkan nilai.

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

Mengembalikan elemen yang berbeda dari urutan dengan menggunakan IEqualityComparer<T> tertentu untuk membandingkan nilai.

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

Mengembalikan elemen yang berbeda dari urutan sesuai dengan fungsi pemilih kunci tertentu.

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

Mengembalikan elemen yang berbeda dari urutan sesuai dengan fungsi pemilih kunci tertentu dan menggunakan perbandingan yang ditentukan untuk membandingkan kunci.

ElementAt<TSource>(IEnumerable<TSource>, Index)

Mengembalikan elemen pada indeks tertentu secara berurutan.

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

Mengembalikan elemen pada indeks tertentu secara berurutan.

ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index)

Mengembalikan elemen pada indeks tertentu secara berurutan atau nilai default jika indeks berada di luar rentang.

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

Mengembalikan elemen pada indeks tertentu secara berurutan atau nilai default jika indeks berada di luar rentang.

Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Menghasilkan perbedaan yang ditetapkan dari dua urutan dengan menggunakan perbandingan kesetaraan default untuk membandingkan nilai.

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

Menghasilkan perbedaan yang ditetapkan dari dua urutan dengan menggunakan IEqualityComparer<T> yang ditentukan untuk membandingkan nilai.

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

Menghasilkan perbedaan yang ditetapkan dari dua urutan sesuai dengan fungsi pemilih kunci tertentu.

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

Menghasilkan perbedaan yang ditetapkan dari dua urutan sesuai dengan fungsi pemilih kunci tertentu.

First<TSource>(IEnumerable<TSource>)

Mengembalikan elemen pertama dari urutan.

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

Mengembalikan elemen pertama dalam urutan yang memenuhi kondisi tertentu.

FirstOrDefault<TSource>(IEnumerable<TSource>)

Mengembalikan elemen pertama dari urutan, atau nilai default jika urutan tidak berisi elemen.

FirstOrDefault<TSource>(IEnumerable<TSource>, TSource)

Mengembalikan elemen pertama dari urutan, atau nilai default yang ditentukan jika urutan tidak berisi elemen.

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

Mengembalikan elemen pertama dari urutan yang memenuhi kondisi atau nilai default jika tidak ada elemen tersebut yang ditemukan.

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

Mengembalikan elemen pertama dari urutan yang memenuhi kondisi, atau nilai default yang ditentukan jika tidak ada elemen tersebut yang ditemukan.

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

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu.

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

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu dan membandingkan kunci dengan menggunakan perbandingan yang ditentukan.

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

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu dan memproyeksikan elemen untuk setiap grup dengan menggunakan fungsi tertentu.

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

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci. Kunci dibandingkan dengan menggunakan pembanding dan elemen setiap grup diproyeksikan dengan menggunakan fungsi tertentu.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>)

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu dan membuat nilai hasil dari setiap grup dan kuncinya.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>)

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu dan membuat nilai hasil dari setiap grup dan kuncinya. Kunci dibandingkan dengan menggunakan pembanding tertentu.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>)

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu dan membuat nilai hasil dari setiap grup dan kuncinya. Elemen setiap grup diproyeksikan dengan menggunakan fungsi tertentu.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu dan membuat nilai hasil dari setiap grup dan kuncinya. Nilai kunci dibandingkan dengan menggunakan pembanding tertentu, dan elemen setiap grup diproyeksikan dengan menggunakan fungsi tertentu.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>)

Menghubungkan elemen dari dua urutan berdasarkan kesetaraan kunci dan mengelompokkan hasilnya. Perbandingan kesetaraan default digunakan untuk membandingkan kunci.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Menghubungkan elemen dari dua urutan berdasarkan kesetaraan kunci dan mengelompokkan hasilnya. IEqualityComparer<T> tertentu digunakan untuk membandingkan kunci.

Index<TSource>(IEnumerable<TSource>)

Mengembalikan enumerable yang menggabungkan indeks elemen ke dalam tuple.

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Menghasilkan persimpangan yang ditetapkan dari dua urutan dengan menggunakan perbandingan kesetaraan default untuk membandingkan nilai.

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

Menghasilkan persimpangan yang ditetapkan dari dua urutan dengan menggunakan IEqualityComparer<T> yang ditentukan untuk membandingkan nilai.

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

Menghasilkan persimpangan yang ditetapkan dari dua urutan sesuai dengan fungsi pemilih kunci tertentu.

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

Menghasilkan persimpangan yang ditetapkan dari dua urutan sesuai dengan fungsi pemilih kunci tertentu.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>)

Mengkorelasikan elemen dari dua urutan berdasarkan kunci yang cocok. Perbandingan kesetaraan default digunakan untuk membandingkan kunci.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>)

Mengkorelasikan elemen dari dua urutan berdasarkan kunci yang cocok. IEqualityComparer<T> tertentu digunakan untuk membandingkan kunci.

Last<TSource>(IEnumerable<TSource>)

Mengembalikan elemen terakhir dari urutan.

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

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi yang ditentukan.

LastOrDefault<TSource>(IEnumerable<TSource>)

Mengembalikan elemen terakhir dari urutan, atau nilai default jika urutan tidak berisi elemen.

LastOrDefault<TSource>(IEnumerable<TSource>, TSource)

Mengembalikan elemen terakhir dari urutan, atau nilai default yang ditentukan jika urutan tidak berisi elemen.

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

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi atau nilai default jika tidak ada elemen tersebut yang ditemukan.

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

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi, atau nilai default yang ditentukan jika tidak ada elemen tersebut yang ditemukan.

LongCount<TSource>(IEnumerable<TSource>)

Mengembalikan Int64 yang menunjukkan jumlah total elemen secara berurutan.

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

Mengembalikan Int64 yang mewakili berapa banyak elemen dalam urutan yang memenuhi kondisi.

Max<TSource>(IEnumerable<TSource>)

Mengembalikan nilai maksimum dalam urutan generik.

Max<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Mengembalikan nilai maksimum dalam urutan generik.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Decimal maksimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Double maksimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int32 maksimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int64 maksimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Decimal maksimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Double maksimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int32 maksimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int64 maksimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Single maksimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Single maksimum.

Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Memanggil fungsi transformasi pada setiap elemen urutan generik dan mengembalikan nilai hasil maksimum.

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

Mengembalikan nilai maksimum dalam urutan generik sesuai dengan fungsi pemilih kunci tertentu.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Mengembalikan nilai maksimum dalam urutan generik sesuai dengan fungsi pemilih kunci dan pembanding kunci tertentu.

Min<TSource>(IEnumerable<TSource>)

Mengembalikan nilai minimum dalam urutan generik.

Min<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Mengembalikan nilai minimum dalam urutan generik.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Decimal minimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Double minimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int32 minimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int64 minimum.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Decimal minimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Double minimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int32 minimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Int64 minimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Single minimum yang dapat diubah ke null.

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

Memanggil fungsi transformasi pada setiap elemen urutan dan mengembalikan nilai Single minimum.

Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Memanggil fungsi transformasi pada setiap elemen urutan generik dan mengembalikan nilai minimum yang dihasilkan.

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

Mengembalikan nilai minimum dalam urutan generik sesuai dengan fungsi pemilih kunci tertentu.

MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Mengembalikan nilai minimum dalam urutan generik sesuai dengan fungsi pemilih kunci dan pembanding kunci tertentu.

OfType<TResult>(IEnumerable)

Memfilter elemen IEnumerable berdasarkan jenis tertentu.

Order<T>(IEnumerable<T>)

Mengurutkan elemen urutan dalam urutan naik.

Order<T>(IEnumerable<T>, IComparer<T>)

Mengurutkan elemen urutan dalam urutan naik.

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

Mengurutkan elemen urutan dalam urutan naik sesuai dengan kunci.

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Mengurutkan elemen urutan dalam urutan naik dengan menggunakan pembanding yang ditentukan.

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

Mengurutkan elemen urutan dalam urutan turun sesuai dengan kunci.

OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Mengurutkan elemen urutan dalam urutan menurun dengan menggunakan pembanding yang ditentukan.

OrderDescending<T>(IEnumerable<T>)

Mengurutkan elemen urutan dalam urutan turun.

OrderDescending<T>(IEnumerable<T>, IComparer<T>)

Mengurutkan elemen urutan dalam urutan turun.

Prepend<TSource>(IEnumerable<TSource>, TSource)

Menambahkan nilai ke awal urutan.

Reverse<TSource>(IEnumerable<TSource>)

Menginversi urutan elemen secara berurutan.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Memproyeksikan setiap elemen urutan ke dalam bentuk baru.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)

Memproyeksikan setiap elemen urutan ke dalam bentuk baru dengan menggabungkan indeks elemen.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>)

Memproyeksikan setiap elemen urutan ke IEnumerable<T> dan meratakan urutan yang dihasilkan menjadi satu urutan.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>)

Memproyeksikan setiap elemen urutan ke IEnumerable<T>, dan meratakan urutan yang dihasilkan menjadi satu urutan. Indeks setiap elemen sumber digunakan dalam bentuk elemen yang diproyeksikan.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Memproyeksikan setiap elemen urutan ke IEnumerable<T>, meratakan urutan yang dihasilkan menjadi satu urutan, dan memanggil fungsi pemilih hasil pada setiap elemen di dalamnya.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Memproyeksikan setiap elemen urutan ke IEnumerable<T>, meratakan urutan yang dihasilkan menjadi satu urutan, dan memanggil fungsi pemilih hasil pada setiap elemen di dalamnya. Indeks setiap elemen sumber digunakan dalam bentuk proyeksi menengah dari elemen tersebut.

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Menentukan apakah dua urutan sama dengan membandingkan elemen dengan menggunakan perbandingan kesetaraan default untuk jenisnya.

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

Menentukan apakah dua urutan sama dengan membandingkan elemennya dengan menggunakan IEqualityComparer<T>tertentu.

Single<TSource>(IEnumerable<TSource>)

Mengembalikan satu-satunya elemen urutan, dan melemparkan pengecualian jika tidak ada tepat satu elemen dalam urutan.

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

Mengembalikan satu-satunya elemen dari urutan yang memenuhi kondisi tertentu, dan melemparkan pengecualian jika ada lebih dari satu elemen tersebut.

SingleOrDefault<TSource>(IEnumerable<TSource>)

Mengembalikan satu-satunya elemen urutan, atau nilai default jika urutannya kosong; metode ini melemparkan pengecualian jika ada lebih dari satu elemen dalam urutan.

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

Mengembalikan satu-satunya elemen urutan, atau nilai default yang ditentukan jika urutannya kosong; metode ini melemparkan pengecualian jika ada lebih dari satu elemen dalam urutan.

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

Mengembalikan satu-satunya elemen urutan yang memenuhi kondisi tertentu atau nilai default jika tidak ada elemen tersebut; metode ini memberikan pengecualian jika lebih dari satu elemen memenuhi kondisi.

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

Mengembalikan satu-satunya elemen urutan yang memenuhi kondisi tertentu, atau nilai default yang ditentukan jika tidak ada elemen tersebut; metode ini memberikan pengecualian jika lebih dari satu elemen memenuhi kondisi.

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

Melewati jumlah elemen tertentu secara berurutan lalu mengembalikan elemen yang tersisa.

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

Mengembalikan koleksi baru yang dapat dijumlahkan yang berisi elemen dari source dengan elemen count terakhir dari kumpulan sumber yang dihilangkan.

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

Melewati elemen secara berurutan selama kondisi yang ditentukan benar dan kemudian mengembalikan elemen yang tersisa.

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

Melewati elemen secara berurutan selama kondisi yang ditentukan benar dan kemudian mengembalikan elemen yang tersisa. Indeks elemen digunakan dalam logika fungsi predikat.

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

Menghitung jumlah urutan nilai Decimal yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Double yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Int32 yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Int64 yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Decimal nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Double nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Int32 nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Int64 nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Single nullable yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Menghitung jumlah urutan nilai Single yang diperoleh dengan memanggil fungsi transformasi pada setiap elemen urutan input.

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

Mengembalikan jumlah elemen bersebelahan yang ditentukan dari awal urutan.

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

Mengembalikan rentang elemen bersebelahan yang ditentukan dari urutan.

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

Mengembalikan koleksi baru yang dapat dijumlahkan yang berisi elemen count terakhir dari source.

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

Mengembalikan elemen dari urutan selama kondisi yang ditentukan adalah true.

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

Mengembalikan elemen dari urutan selama kondisi yang ditentukan adalah true. Indeks elemen digunakan dalam logika fungsi predikat.

ToArray<TSource>(IEnumerable<TSource>)

Membuat array dari IEnumerable<T>.

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

Membuat Dictionary<TKey,TValue> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci tertentu.

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

Membuat Dictionary<TKey,TValue> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci dan perbandingan kunci tertentu.

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

Membuat Dictionary<TKey,TValue> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci dan pemilih elemen yang ditentukan.

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

Membuat Dictionary<TKey,TValue> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci tertentu, pembanding, dan fungsi pemilih elemen.

ToHashSet<TSource>(IEnumerable<TSource>)

Membuat HashSet<T> dari IEnumerable<T>.

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

Membuat HashSet<T> dari IEnumerable<T> menggunakan comparer untuk membandingkan kunci.

ToList<TSource>(IEnumerable<TSource>)

Membuat List<T> dari IEnumerable<T>.

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

Membuat Lookup<TKey,TElement> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci tertentu.

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

Membuat Lookup<TKey,TElement> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci dan perbandingan kunci tertentu.

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

Membuat Lookup<TKey,TElement> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci dan pemilih elemen yang ditentukan.

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

Membuat Lookup<TKey,TElement> dari IEnumerable<T> sesuai dengan fungsi pemilih kunci tertentu, comparer, dan fungsi pemilih elemen.

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

Mencoba menentukan jumlah elemen dalam urutan tanpa memaksa enumerasi.

Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Menghasilkan penyatuan yang ditetapkan dari dua urutan dengan menggunakan perbandingan kesetaraan default.

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

Menghasilkan penyatuan yang ditetapkan dari dua urutan dengan menggunakan IEqualityComparer<T>tertentu .

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

Menghasilkan penyatuan yang ditetapkan dari dua urutan sesuai dengan fungsi pemilih kunci tertentu.

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

Menghasilkan penyatuan yang ditetapkan dari dua urutan sesuai dengan fungsi pemilih kunci tertentu.

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

Memfilter urutan nilai berdasarkan predikat.

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

Memfilter urutan nilai berdasarkan predikat. Indeks setiap elemen digunakan dalam logika fungsi predikat.

Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>)

Menghasilkan urutan tuple dengan elemen dari dua urutan yang ditentukan.

Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Menghasilkan urutan tuple dengan elemen dari tiga urutan yang ditentukan.

Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)

Menerapkan fungsi tertentu ke elemen yang sesuai dari dua urutan, menghasilkan urutan hasil.

AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsParallel<TSource>(IEnumerable<TSource>)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi IEnumerable menjadi IQueryable.

AsQueryable<TElement>(IEnumerable<TElement>)

Mengonversi IEnumerable<T> generik ke IQueryable<T>generik .

Ancestors<T>(IEnumerable<T>)

Mengembalikan kumpulan elemen yang berisi leluhur setiap simpul dalam kumpulan sumber.

Ancestors<T>(IEnumerable<T>, XName)

Mengembalikan kumpulan elemen yang difilter yang berisi leluhur setiap simpul dalam kumpulan sumber. Hanya elemen yang memiliki XName yang cocok yang disertakan dalam koleksi.

DescendantNodes<T>(IEnumerable<T>)

Mengembalikan kumpulan simpul turunan dari setiap dokumen dan elemen dalam kumpulan sumber.

Descendants<T>(IEnumerable<T>)

Mengembalikan kumpulan elemen yang berisi elemen turunan dari setiap elemen dan dokumen dalam kumpulan sumber.

Descendants<T>(IEnumerable<T>, XName)

Mengembalikan kumpulan elemen yang difilter yang berisi elemen turunan dari setiap elemen dan dokumen dalam kumpulan sumber. Hanya elemen yang memiliki XName yang cocok yang disertakan dalam koleksi.

Elements<T>(IEnumerable<T>)

Mengembalikan kumpulan elemen turunan dari setiap elemen dan dokumen dalam kumpulan sumber.

Elements<T>(IEnumerable<T>, XName)

Mengembalikan kumpulan elemen turunan yang difilter dari setiap elemen dan dokumen dalam kumpulan sumber. Hanya elemen yang memiliki XName yang cocok yang disertakan dalam koleksi.

InDocumentOrder<T>(IEnumerable<T>)

Mengembalikan kumpulan simpul yang berisi semua simpul dalam kumpulan sumber, diurutkan dalam urutan dokumen.

Nodes<T>(IEnumerable<T>)

Mengembalikan kumpulan simpul anak dari setiap dokumen dan elemen dalam kumpulan sumber.

Remove<T>(IEnumerable<T>)

Menghapus setiap simpul dalam kumpulan sumber dari simpul induknya.

Berlaku untuk

Keamanan Thread

Metode Buang tidak aman utas. Semua anggota BlockingCollection<T> publik dan terlindungi lainnya aman utas dan dapat digunakan secara bersamaan dari beberapa utas.

Lihat juga