Bagikan melalui


KeyedCollection<TKey,TItem> Kelas

Definisi

Menyediakan kelas dasar abstrak untuk koleksi yang kuncinya disematkan dalam nilai.

generic <typename TKey, typename TItem>
public ref class KeyedCollection abstract : System::Collections::ObjectModel::Collection<TItem>
public abstract class KeyedCollection<TKey,TItem> : System.Collections.ObjectModel.Collection<TItem>
[System.Runtime.InteropServices.ComVisible(false)]
[System.Serializable]
public abstract class KeyedCollection<TKey,TItem> : System.Collections.ObjectModel.Collection<TItem>
type KeyedCollection<'Key, 'Item> = class
    inherit Collection<'Item>
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Serializable>]
type KeyedCollection<'Key, 'Item> = class
    inherit Collection<'Item>
Public MustInherit Class KeyedCollection(Of TKey, TItem)
Inherits Collection(Of TItem)

Jenis parameter

TKey

Jenis kunci dalam koleksi.

TItem

Jenis item dalam koleksi.

Warisan
Collection<TItem>
KeyedCollection<TKey,TItem>
Turunan
Atribut

Contoh

Bagian ini berisi dua contoh kode. Contoh pertama menunjukkan kode minimum yang diperlukan untuk berasal dari KeyedCollection<TKey,TItem>, dan menunjukkan banyak metode yang diwariskan. Contoh kedua menunjukkan cara mengambil alih metode KeyedCollection<TKey,TItem> yang dilindungi untuk memberikan perilaku kustom.

Contoh 1

Contoh kode ini menunjukkan kode minimum yang diperlukan untuk mendapatkan kelas koleksi dari KeyedCollection<TKey,TItem>: mengambil GetKeyForItem alih metode dan menyediakan konstruktor publik yang mendelegasikan ke konstruktor kelas dasar. Contoh kode juga menunjukkan banyak properti dan metode yang diwarisi dari KeyedCollection<TKey,TItem> kelas dan Collection<T> .

Kelas SimpleOrder adalah daftar permintaan yang sangat sederhana yang berisi OrderItem objek, yang masing-masing mewakili item baris dalam urutan. Kuncinya OrderItem tidak dapat diubah, pertimbangan penting untuk kelas yang berasal dari KeyedCollection<TKey,TItem>. Untuk contoh kode yang menggunakan kunci yang dapat diubah, lihat ChangeItemKey.

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

// This class represents a very simple keyed list of OrderItems,
// inheriting most of its behavior from the KeyedCollection and
// Collection classes. The immediate base class is the constructed
// type KeyedCollection<int, OrderItem>. When you inherit
// from KeyedCollection, the second generic type argument is the
// type that you want to store in the collection -- in this case
// OrderItem. The first type argument is the type that you want
// to use as a key. Its values must be calculated from OrderItem;
// in this case it is the int field PartNumber, so SimpleOrder
// inherits KeyedCollection<int, OrderItem>.
//
public class SimpleOrder : KeyedCollection<int, OrderItem>
{

    // This is the only method that absolutely must be overridden,
    // because without it the KeyedCollection cannot extract the
    // keys from the items. The input parameter type is the
    // second generic type argument, in this case OrderItem, and
    // the return value type is the first generic type argument,
    // in this case int.
    //
    protected override int GetKeyForItem(OrderItem item)
    {
        // In this example, the key is the part number.
        return item.PartNumber;
    }
}

public class Demo
{
    public static void Main()
    {
        SimpleOrder weekly = new SimpleOrder();

        // The Add method, inherited from Collection, takes OrderItem.
        //
        weekly.Add(new OrderItem(110072674, "Widget", 400, 45.17));
        weekly.Add(new OrderItem(110072675, "Sprocket", 27, 5.3));
        weekly.Add(new OrderItem(101030411, "Motor", 10, 237.5));
        weekly.Add(new OrderItem(110072684, "Gear", 175, 5.17));

        Display(weekly);

        // The Contains method of KeyedCollection takes the key,
        // type, in this case int.
        //
        Console.WriteLine("\nContains(101030411): {0}",
            weekly.Contains(101030411));

        // The default Item property of KeyedCollection takes a key.
        //
        Console.WriteLine("\nweekly[101030411].Description: {0}",
            weekly[101030411].Description);

        // The Remove method of KeyedCollection takes a key.
        //
        Console.WriteLine("\nRemove(101030411)");
        weekly.Remove(101030411);
        Display(weekly);

        // The Insert method, inherited from Collection, takes an
        // index and an OrderItem.
        //
        Console.WriteLine("\nInsert(2, New OrderItem(...))");
        weekly.Insert(2, new OrderItem(111033401, "Nut", 10, .5));
        Display(weekly);

        // The default Item property is overloaded. One overload comes
        // from KeyedCollection<int, OrderItem>; that overload
        // is read-only, and takes Integer because it retrieves by key.
        // The other overload comes from Collection<OrderItem>, the
        // base class of KeyedCollection<int, OrderItem>; it
        // retrieves by index, so it also takes an Integer. The compiler
        // uses the most-derived overload, from KeyedCollection, so the
        // only way to access SimpleOrder by index is to cast it to
        // Collection<OrderItem>. Otherwise the index is interpreted
        // as a key, and KeyNotFoundException is thrown.
        //
        Collection<OrderItem> coweekly = weekly;
        Console.WriteLine("\ncoweekly[2].Description: {0}",
            coweekly[2].Description);

        Console.WriteLine("\ncoweekly[2] = new OrderItem(...)");
        coweekly[2] = new OrderItem(127700026, "Crank", 27, 5.98);

        OrderItem temp = coweekly[2];

        // The IndexOf method inherited from Collection<OrderItem>
        // takes an OrderItem instead of a key
        //
        Console.WriteLine("\nIndexOf(temp): {0}", weekly.IndexOf(temp));

        // The inherited Remove method also takes an OrderItem.
        //
        Console.WriteLine("\nRemove(temp)");
        weekly.Remove(temp);
        Display(weekly);

        Console.WriteLine("\nRemoveAt(0)");
        weekly.RemoveAt(0);
        Display(weekly);
    }

    private static void Display(SimpleOrder order)
    {
        Console.WriteLine();
        foreach( OrderItem item in order )
        {
            Console.WriteLine(item);
        }
    }
}

// This class represents a simple line item in an order. All the
// values are immutable except quantity.
//
public class OrderItem
{
    public readonly int PartNumber;
    public readonly string Description;
    public readonly double UnitPrice;

    private int _quantity = 0;

    public OrderItem(int partNumber, string description,
        int quantity, double unitPrice)
    {
        this.PartNumber = partNumber;
        this.Description = description;
        this.Quantity = quantity;
        this.UnitPrice = unitPrice;
    }

    public int Quantity
    {
        get { return _quantity; }
        set
        {
            if (value<0)
                throw new ArgumentException("Quantity cannot be negative.");

            _quantity = value;
        }
    }

    public override string ToString()
    {
        return String.Format(
            "{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}",
            PartNumber, _quantity, Description, UnitPrice,
            UnitPrice * _quantity);
    }
}

/* This code example produces the following output:

110072674    400 Widget       at    45.17 =  18,068.00
110072675     27 Sprocket     at     5.30 =     143.10
101030411     10 Motor        at   237.50 =   2,375.00
110072684    175 Gear         at     5.17 =     904.75

Contains(101030411): True

weekly[101030411].Description: Motor

Remove(101030411)

110072674    400 Widget       at    45.17 =  18,068.00
110072675     27 Sprocket     at     5.30 =     143.10
110072684    175 Gear         at     5.17 =     904.75

Insert(2, New OrderItem(...))

110072674    400 Widget       at    45.17 =  18,068.00
110072675     27 Sprocket     at     5.30 =     143.10
111033401     10 Nut          at      .50 =       5.00
110072684    175 Gear         at     5.17 =     904.75

coweekly[2].Description: Nut

coweekly[2] = new OrderItem(...)

IndexOf(temp): 2

Remove(temp)

110072674    400 Widget       at    45.17 =  18,068.00
110072675     27 Sprocket     at     5.30 =     143.10
110072684    175 Gear         at     5.17 =     904.75

RemoveAt(0)

110072675     27 Sprocket     at     5.30 =     143.10
110072684    175 Gear         at     5.17 =     904.75
 */
Imports System.Collections.Generic
Imports System.Collections.ObjectModel

' This class represents a very simple keyed list of OrderItems,
' inheriting most of its behavior from the KeyedCollection and 
' Collection classes. The immediate base class is the constructed
' type KeyedCollection(Of Integer, OrderItem). When you inherit
' from KeyedCollection, the second generic type argument is the 
' type that you want to store in the collection -- in this case
' OrderItem. The first generic argument is the type that you want
' to use as a key. Its values must be calculated from OrderItem; 
' in this case it is the Integer field PartNumber, so SimpleOrder
' inherits KeyedCollection(Of Integer, OrderItem).
'
Public Class SimpleOrder
    Inherits KeyedCollection(Of Integer, OrderItem)


    ' This is the only method that absolutely must be overridden,
    ' because without it the KeyedCollection cannot extract the
    ' keys from the items. The input parameter type is the 
    ' second generic type argument, in this case OrderItem, and 
    ' the return value type is the first generic type argument,
    ' in this case Integer.
    '
    Protected Overrides Function GetKeyForItem( _
        ByVal item As OrderItem) As Integer

        ' In this example, the key is the part number.
        Return item.PartNumber   
    End Function

End Class

Public Class Demo
    
    Public Shared Sub Main() 
        Dim weekly As New SimpleOrder()

        ' The Add method, inherited from Collection, takes OrderItem.
        '
        weekly.Add(New OrderItem(110072674, "Widget", 400, 45.17))
        weekly.Add(New OrderItem(110072675, "Sprocket", 27, 5.3))
        weekly.Add(New OrderItem(101030411, "Motor", 10, 237.5))
        weekly.Add(New OrderItem(110072684, "Gear", 175, 5.17))
        
        Display(weekly)
    
        ' The Contains method of KeyedCollection takes TKey.
        '
        Console.WriteLine(vbLf & "Contains(101030411): {0}", _
            weekly.Contains(101030411))

        ' The default Item property of KeyedCollection takes the key
        ' type, Integer.
        '
        Console.WriteLine(vbLf & "weekly(101030411).Description: {0}", _
            weekly(101030411).Description)

        ' The Remove method of KeyedCollection takes a key.
        '
        Console.WriteLine(vbLf & "Remove(101030411)")
        weekly.Remove(101030411)
        Display(weekly)

        ' The Insert method, inherited from Collection, takes an 
        ' index and an OrderItem.
        '
        Console.WriteLine(vbLf & "Insert(2, New OrderItem(...))")
        weekly.Insert(2, New OrderItem(111033401, "Nut", 10, .5))
        Display(weekly)

        ' The default Item property is overloaded. One overload comes
        ' from KeyedCollection(Of Integer, OrderItem); that overload
        ' is read-only, and takes Integer because it retrieves by key. 
        ' The other overload comes from Collection(Of OrderItem), the 
        ' base class of KeyedCollection(Of Integer, OrderItem); it 
        ' retrieves by index, so it also takes an Integer. The compiler
        ' uses the most-derived overload, from KeyedCollection, so the
        ' only way to access SimpleOrder by index is to cast it to
        ' Collection(Of OrderItem). Otherwise the index is interpreted
        ' as a key, and KeyNotFoundException is thrown.
        '
        Dim coweekly As Collection(Of OrderItem) = weekly
        Console.WriteLine(vbLf & "coweekly(2).Description: {0}", _
            coweekly(2).Description)
 
        Console.WriteLine(vbLf & "coweekly(2) = New OrderItem(...)")
        coweekly(2) = New OrderItem(127700026, "Crank", 27, 5.98)

        Dim temp As OrderItem = coweekly(2)

        ' The IndexOf method, inherited from Collection(Of OrderItem), 
        ' takes an OrderItem instead of a key.
        ' 
        Console.WriteLine(vbLf & "IndexOf(temp): {0}", _
            weekly.IndexOf(temp))

        ' The inherited Remove method also takes an OrderItem.
        '
        Console.WriteLine(vbLf & "Remove(temp)")
        weekly.Remove(temp)
        Display(weekly)

        Console.WriteLine(vbLf & "RemoveAt(0)")
        weekly.RemoveAt(0)
        Display(weekly)

    End Sub
    
    Private Shared Sub Display(ByVal order As SimpleOrder) 
        Console.WriteLine()
        For Each item As OrderItem In  order
            Console.WriteLine(item)
        Next item
    End Sub
End Class

' This class represents a simple line item in an order. All the 
' values are immutable except quantity.
' 
Public Class OrderItem
    Public ReadOnly PartNumber As Integer
    Public ReadOnly Description As String
    Public ReadOnly UnitPrice As Double
    
    Private _quantity As Integer = 0
    
    Public Sub New(ByVal partNumber As Integer, _
                   ByVal description As String, _
                   ByVal quantity As Integer, _
                   ByVal unitPrice As Double) 
        Me.PartNumber = partNumber
        Me.Description = description
        Me.Quantity = quantity
        Me.UnitPrice = unitPrice
    End Sub
    
    Public Property Quantity() As Integer 
        Get
            Return _quantity
        End Get
        Set
            If value < 0 Then
                Throw New ArgumentException("Quantity cannot be negative.")
            End If
            _quantity = value
        End Set
    End Property
        
    Public Overrides Function ToString() As String 
        Return String.Format( _
            "{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}", _
            PartNumber, _quantity, Description, UnitPrice, _
            UnitPrice * _quantity)
    End Function
End Class

' This code example produces the following output:
'
'110072674    400 Widget       at    45.17 =  18,068.00
'110072675     27 Sprocket     at     5.30 =     143.10
'101030411     10 Motor        at   237.50 =   2,375.00
'110072684    175 Gear         at     5.17 =     904.75
'
'Contains(101030411): True
'
'weekly(101030411).Description: Motor
'
'Remove(101030411)
'
'110072674    400 Widget       at    45.17 =  18,068.00
'110072675     27 Sprocket     at     5.30 =     143.10
'110072684    175 Gear         at     5.17 =     904.75
'
'Insert(2, New OrderItem(...))
'
'110072674    400 Widget       at    45.17 =  18,068.00
'110072675     27 Sprocket     at     5.30 =     143.10
'111033401     10 Nut          at      .50 =       5.00
'110072684    175 Gear         at     5.17 =     904.75
'
'coweekly(2).Description: Nut
'
'coweekly(2) = New OrderItem(...)
'
'IndexOf(temp): 2
'
'Remove(temp)
'
'110072674    400 Widget       at    45.17 =  18,068.00
'110072675     27 Sprocket     at     5.30 =     143.10
'110072684    175 Gear         at     5.17 =     904.75
'
'RemoveAt(0)
'
'110072675     27 Sprocket     at     5.30 =     143.10
'110072684    175 Gear         at     5.17 =     904.75

Contoh 2

Contoh kode berikut menunjukkan cara mengambil alih metode , , , dan yang dilindungiInsertItem, untuk memberikan perilaku kustom untuk Addmetode , , Removedan Clear , dan untuk mengatur properti default Item[] (pengindeks di C#).SetItemClearItemsRemoveItem Perilaku kustom yang disediakan dalam contoh ini adalah peristiwa pemberitahuan bernama Changed, yang dinaikkan di akhir setiap metode yang ditimpa.

Contoh kode membuat SimpleOrder kelas , yang berasal dari KeyedCollection<TKey,TItem> dan mewakili formulir urutan sederhana. Formulir pesanan berisi OrderItem objek yang mewakili item yang diurutkan. Contoh kode juga membuat SimpleOrderChangedEventArgs kelas untuk berisi informasi peristiwa, dan enumerasi untuk mengidentifikasi jenis perubahan.

Contoh kode menunjukkan perilaku kustom dengan memanggil properti dan metode kelas turunanDemo, dalam Main metode kelas .

Contoh kode ini menggunakan objek dengan kunci yang tidak dapat diubah. Untuk contoh kode yang menggunakan kunci yang dapat diubah, lihat ChangeItemKey.

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

// This class derives from KeyedCollection and shows how to override
// the protected ClearItems, InsertItem, RemoveItem, and SetItem
// methods in order to change the behavior of the default Item
// property and the Add, Clear, Insert, and Remove methods. The
// class implements a Changed event, which is raised by all the
// protected methods.
//
// SimpleOrder is a collection of OrderItem objects, and its key
// is the PartNumber field of OrderItem. PartNumber is an Integer,
// so SimpleOrder inherits KeyedCollection<int, OrderItem>.
// (Note that the key of OrderItem cannot be changed; if it could
// be changed, SimpleOrder would have to override ChangeItemKey.)
//
public class SimpleOrder : KeyedCollection<int, OrderItem>
{
    public event EventHandler<SimpleOrderChangedEventArgs> Changed;

    // This parameterless constructor calls the base class constructor
    // that specifies a dictionary threshold of 0, so that the internal
    // dictionary is created as soon as an item is added to the
    // collection.
    //
    public SimpleOrder() : base(null, 0) {}

    // This is the only method that absolutely must be overridden,
    // because without it the KeyedCollection cannot extract the
    // keys from the items.
    //
    protected override int GetKeyForItem(OrderItem item)
    {
        // In this example, the key is the part number.
        return item.PartNumber;
    }

    protected override void InsertItem(int index, OrderItem newItem)
    {
        base.InsertItem(index, newItem);

        EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
        if (temp != null)
        {
            temp(this, new SimpleOrderChangedEventArgs(
                ChangeType.Added, newItem, null));
        }
    }

    protected override void SetItem(int index, OrderItem newItem)
    {
        OrderItem replaced = Items[index];
        base.SetItem(index, newItem);

        EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
        if (temp != null)
        {
            temp(this, new SimpleOrderChangedEventArgs(
                ChangeType.Replaced, replaced, newItem));
        }
    }

    protected override void RemoveItem(int index)
    {
        OrderItem removedItem = Items[index];
        base.RemoveItem(index);

        EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
        if (temp != null)
        {
            temp(this, new SimpleOrderChangedEventArgs(
                ChangeType.Removed, removedItem, null));
        }
    }

    protected override void ClearItems()
    {
        base.ClearItems();

        EventHandler<SimpleOrderChangedEventArgs> temp = Changed;
        if (temp != null)
        {
            temp(this, new SimpleOrderChangedEventArgs(
                ChangeType.Cleared, null, null));
        }
    }
}

// Event argument for the Changed event.
//
public class SimpleOrderChangedEventArgs : EventArgs
{
    private OrderItem _changedItem;
    private ChangeType _changeType;
    private OrderItem _replacedWith;

    public OrderItem ChangedItem { get { return _changedItem; }}
    public ChangeType ChangeType { get { return _changeType; }}
    public OrderItem ReplacedWith { get { return _replacedWith; }}

    public SimpleOrderChangedEventArgs(ChangeType change,
        OrderItem item, OrderItem replacement)
    {
        _changeType = change;
        _changedItem = item;
        _replacedWith = replacement;
    }
}

public enum ChangeType
{
    Added,
    Removed,
    Replaced,
    Cleared
};

public class Demo
{
    public static void Main()
    {
        SimpleOrder weekly = new SimpleOrder();
        weekly.Changed += new
            EventHandler<SimpleOrderChangedEventArgs>(ChangedHandler);

        // The Add method, inherited from Collection, takes OrderItem.
        //
        weekly.Add(new OrderItem(110072674, "Widget", 400, 45.17));
        weekly.Add(new OrderItem(110072675, "Sprocket", 27, 5.3));
        weekly.Add(new OrderItem(101030411, "Motor", 10, 237.5));
        weekly.Add(new OrderItem(110072684, "Gear", 175, 5.17));

        Display(weekly);

        // The Contains method of KeyedCollection takes TKey.
        //
        Console.WriteLine("\nContains(101030411): {0}",
            weekly.Contains(101030411));

        // The default Item property of KeyedCollection takes the key
        // type, Integer. The property is read-only.
        //
        Console.WriteLine("\nweekly[101030411].Description: {0}",
            weekly[101030411].Description);

        // The Remove method of KeyedCollection takes a key.
        //
        Console.WriteLine("\nRemove(101030411)");
        weekly.Remove(101030411);

        // The Insert method, inherited from Collection, takes an
        // index and an OrderItem.
        //
        Console.WriteLine("\nInsert(2, new OrderItem(...))");
        weekly.Insert(2, new OrderItem(111033401, "Nut", 10, .5));

        // The default Item property is overloaded. One overload comes
        // from KeyedCollection<int, OrderItem>; that overload
        // is read-only, and takes Integer because it retrieves by key.
        // The other overload comes from Collection<OrderItem>, the
        // base class of KeyedCollection<int, OrderItem>; it
        // retrieves by index, so it also takes an Integer. The compiler
        // uses the most-derived overload, from KeyedCollection, so the
        // only way to access SimpleOrder by index is to cast it to
        // Collection<OrderItem>. Otherwise the index is interpreted
        // as a key, and KeyNotFoundException is thrown.
        //
        Collection<OrderItem> coweekly = weekly;
        Console.WriteLine("\ncoweekly[2].Description: {0}",
            coweekly[2].Description);

        Console.WriteLine("\ncoweekly[2] = new OrderItem(...)");
        coweekly[2] = new OrderItem(127700026, "Crank", 27, 5.98);

        OrderItem temp = coweekly[2];

        // The IndexOf method, inherited from Collection<OrderItem>,
        // takes an OrderItem instead of a key.
        //
        Console.WriteLine("\nIndexOf(temp): {0}", weekly.IndexOf(temp));

        // The inherited Remove method also takes an OrderItem.
        //
        Console.WriteLine("\nRemove(temp)");
        weekly.Remove(temp);

        Console.WriteLine("\nRemoveAt(0)");
        weekly.RemoveAt(0);

        // Increase the quantity for a line item.
        Console.WriteLine("\ncoweekly(1) = New OrderItem(...)");
        coweekly[1] = new OrderItem(coweekly[1].PartNumber,
            coweekly[1].Description, coweekly[1].Quantity + 1000,
            coweekly[1].UnitPrice);

        Display(weekly);

        Console.WriteLine();
        weekly.Clear();
    }

    private static void Display(SimpleOrder order)
    {
        Console.WriteLine();
        foreach( OrderItem item in order )
        {
            Console.WriteLine(item);
        }
    }

    private static void ChangedHandler(object source,
        SimpleOrderChangedEventArgs e)
    {

        OrderItem item = e.ChangedItem;

        if (e.ChangeType==ChangeType.Replaced)
        {
            OrderItem replacement = e.ReplacedWith;

            Console.WriteLine("{0} (quantity {1}) was replaced " +
                "by {2}, (quantity {3}).", item.Description,
                item.Quantity, replacement.Description,
                replacement.Quantity);
        }
        else if(e.ChangeType == ChangeType.Cleared)
        {
            Console.WriteLine("The order list was cleared.");
        }
        else
        {
            Console.WriteLine("{0} (quantity {1}) was {2}.",
                item.Description, item.Quantity, e.ChangeType);
        }
    }
}

// This class represents a simple line item in an order. All the
// values are immutable except quantity.
//
public class OrderItem
{
    private int _partNumber;
    private string _description;
    private double _unitPrice;
    private int _quantity;

    public int PartNumber { get { return _partNumber; }}
    public string Description { get { return _description; }}
    public double UnitPrice { get { return _unitPrice; }}
    public int Quantity { get { return _quantity; }}

    public OrderItem(int partNumber, string description, int quantity,
        double unitPrice)
    {
        _partNumber = partNumber;
        _description = description;
        _quantity = quantity;
        _unitPrice = unitPrice;
    }

    public override string ToString()
    {
        return String.Format(
            "{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}",
            PartNumber, _quantity, Description, UnitPrice,
            UnitPrice * _quantity);
    }
}

/* This code example produces the following output:

Widget (quantity 400) was Added.
Sprocket (quantity 27) was Added.
Motor (quantity 10) was Added.
Gear (quantity 175) was Added.

110072674    400 Widget       at    45.17 =  18,068.00
110072675     27 Sprocket     at     5.30 =     143.10
101030411     10 Motor        at   237.50 =   2,375.00
110072684    175 Gear         at     5.17 =     904.75

Contains(101030411): True

weekly[101030411].Description: Motor

Remove(101030411)
Motor (quantity 10) was Removed.

Insert(2, new OrderItem(...))
Nut (quantity 10) was Added.

coweekly[2].Description: Nut

coweekly[2] = new OrderItem(...)
Nut (quantity 10) was replaced by Crank, (quantity 27).

IndexOf(temp): 2

Remove(temp)
Crank (quantity 27) was Removed.

RemoveAt(0)
Widget (quantity 400) was Removed.

coweekly(1) = New OrderItem(...)
Gear (quantity 175) was replaced by Gear, (quantity 1175).

110072675     27 Sprocket     at     5.30 =     143.10
110072684   1175 Gear         at     5.17 =   6,074.75

The order list was cleared.
 */
Imports System.Collections.Generic
Imports System.Collections.ObjectModel

' This class derives from KeyedCollection and shows how to override
' the protected ClearItems, InsertItem, RemoveItem, and SetItem 
' methods in order to change the behavior of the default Item 
' property and the Add, Clear, Insert, and Remove methods. The
' class implements a Changed event, which is raised by all the
' protected methods.
'
' SimpleOrder is a collection of OrderItem objects, and its key
' is the PartNumber field of OrderItem. PartNumber is an Integer,
' so SimpleOrder inherits KeyedCollection(Of Integer, OrderItem).
' (Note that the key of OrderItem cannot be changed; if it could 
' be changed, SimpleOrder would have to override ChangeItemKey.)
'
Public Class SimpleOrder
    Inherits KeyedCollection(Of Integer, OrderItem)

    Public Event Changed As EventHandler(Of SimpleOrderChangedEventArgs)

    ' This parameterless constructor calls the base class constructor
    ' that specifies a dictionary threshold of 0, so that the internal
    ' dictionary is created as soon as an item is added to the 
    ' collection.
    '
    Public Sub New()
        MyBase.New(Nothing, 0)
    End Sub
    
    ' This is the only method that absolutely must be overridden,
    ' because without it the KeyedCollection cannot extract the
    ' keys from the items. 
    '
    Protected Overrides Function GetKeyForItem( _
        ByVal item As OrderItem) As Integer

        ' In this example, the key is the part number.
        Return item.PartNumber   
    End Function

    Protected Overrides Sub InsertItem( _
        ByVal index As Integer, ByVal newItem As OrderItem)

        MyBase.InsertItem(index, newItem)

        RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
            ChangeType.Added, newItem, Nothing))
    End Sub

    Protected Overrides Sub SetItem(ByVal index As Integer, _
        ByVal newItem As OrderItem)

        Dim replaced As OrderItem = Items(index)
        MyBase.SetItem(index, newItem)

        RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
            ChangeType.Replaced, replaced, newItem))
    End Sub

    Protected Overrides Sub RemoveItem(ByVal index As Integer)

        Dim removedItem As OrderItem = Items(index)
        MyBase.RemoveItem(index)

        RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
            ChangeType.Removed, removedItem, Nothing))
    End Sub

    Protected Overrides Sub ClearItems()
        MyBase.ClearItems()

        RaiseEvent Changed(Me, New SimpleOrderChangedEventArgs( _
            ChangeType.Cleared, Nothing, Nothing))
    End Sub

End Class

' Event argument for the Changed event.
'
Public Class SimpleOrderChangedEventArgs
    Inherits EventArgs

    Private _changedItem As OrderItem
    Private _changeType As ChangeType
    Private _replacedWith As OrderItem

    Public ReadOnly Property ChangedItem As OrderItem
        Get
            Return _changedItem
        End Get
    End Property

    Public ReadOnly Property ChangeType As ChangeType
        Get
            Return _changeType
        End Get
    End Property

    Public ReadOnly Property ReplacedWith As OrderItem
        Get
            Return _replacedWith
        End Get
    End Property

    Public Sub New(ByVal change As ChangeType, ByVal item As OrderItem, _
        ByVal replacement As OrderItem)

        _changeType = change
        _changedItem = item
        _replacedWith = replacement
    End Sub
End Class

Public Enum ChangeType
    Added
    Removed
    Replaced
    Cleared
End Enum

Public Class Demo
    
    Public Shared Sub Main() 
        Dim weekly As New SimpleOrder()
        AddHandler weekly.Changed, AddressOf ChangedHandler

        ' The Add method, inherited from Collection, takes OrderItem.
        '
        weekly.Add(New OrderItem(110072674, "Widget", 400, 45.17))
        weekly.Add(New OrderItem(110072675, "Sprocket", 27, 5.3))
        weekly.Add(New OrderItem(101030411, "Motor", 10, 237.5))
        weekly.Add(New OrderItem(110072684, "Gear", 175, 5.17))

        Display(weekly)
        
        ' The Contains method of KeyedCollection takes TKey.
        '
        Console.WriteLine(vbLf & "Contains(101030411): {0}", _
            weekly.Contains(101030411))

        ' The default Item property of KeyedCollection takes the key
        ' type, Integer. The property is read-only.
        '
        Console.WriteLine(vbLf & "weekly(101030411).Description: {0}", _
            weekly(101030411).Description)

        ' The Remove method of KeyedCollection takes a key.
        '
        Console.WriteLine(vbLf & "Remove(101030411)")
        weekly.Remove(101030411)

        ' The Insert method, inherited from Collection, takes an 
        ' index and an OrderItem.
        '
        Console.WriteLine(vbLf & "Insert(2, New OrderItem(...))")
        weekly.Insert(2, New OrderItem(111033401, "Nut", 10, .5))
         
        ' The default Item property is overloaded. One overload comes
        ' from KeyedCollection(Of Integer, OrderItem); that overload
        ' is read-only, and takes Integer because it retrieves by key. 
        ' The other overload comes from Collection(Of OrderItem), the 
        ' base class of KeyedCollection(Of Integer, OrderItem); it 
        ' retrieves by index, so it also takes an Integer. The compiler
        ' uses the most-derived overload, from KeyedCollection, so the
        ' only way to access SimpleOrder by index is to cast it to
        ' Collection(Of OrderItem). Otherwise the index is interpreted
        ' as a key, and KeyNotFoundException is thrown.
        '
        Dim coweekly As Collection(Of OrderItem) = weekly
        Console.WriteLine(vbLf & "coweekly(2).Description: {0}", _
            coweekly(2).Description)
 
        Console.WriteLine(vbLf & "coweekly(2) = New OrderItem(...)")
        coweekly(2) = New OrderItem(127700026, "Crank", 27, 5.98)

        Dim temp As OrderItem = coweekly(2)

        ' The IndexOf method, inherited from Collection(Of OrderItem), 
        ' takes an OrderItem instead of a key.
        ' 
        Console.WriteLine(vbLf & "IndexOf(temp): {0}", _
            weekly.IndexOf(temp))

        ' The inherited Remove method also takes an OrderItem.
        '
        Console.WriteLine(vbLf & "Remove(temp)")
        weekly.Remove(temp)

        Console.WriteLine(vbLf & "RemoveAt(0)")
        weekly.RemoveAt(0)

        ' Increase the quantity for a line item.
        Console.WriteLine(vbLf & "coweekly(1) = New OrderItem(...)")
        coweekly(1) = New OrderItem(coweekly(1).PartNumber, _
            coweekly(1).Description, coweekly(1).Quantity + 1000, _
            coweekly(1).UnitPrice)

        Display(weekly)

        Console.WriteLine()
        weekly.Clear()
    End Sub
    
    Private Shared Sub Display(ByVal order As SimpleOrder) 
        Console.WriteLine()
        For Each item As OrderItem In  order
            Console.WriteLine(item)
        Next item
    End Sub

    Private Shared Sub ChangedHandler(ByVal source As Object, _
        ByVal e As SimpleOrderChangedEventArgs)

        Dim item As OrderItem = e.ChangedItem

        If e.ChangeType = ChangeType.Replaced Then
            Dim replacement As OrderItem = e.ReplacedWith

            Console.WriteLine("{0} (quantity {1}) was replaced " & _
                "by {2}, (quantity {3}).", item.Description, _
                item.Quantity, replacement.Description, replacement.Quantity)

        ElseIf e.ChangeType = ChangeType.Cleared Then
            Console.WriteLine("The order list was cleared.")

        Else
            Console.WriteLine("{0} (quantity {1}) was {2}.", _
                item.Description, item.Quantity, e.ChangeType)
        End If
    End Sub
End Class

' This class represents a simple line item in an order. All the 
' values are immutable except quantity.
' 
Public Class OrderItem
    
    Private _partNumber As Integer
    Private _description As String
    Private _unitPrice As Double
    Private _quantity As Integer

    Public ReadOnly Property PartNumber As Integer
        Get
            Return _partNumber
        End Get
    End Property

    Public ReadOnly Property Description As String
        Get
            Return _description
        End Get
    End Property

    Public ReadOnly Property UnitPrice As Double
        Get
            Return _unitPrice
        End Get
    End Property
    
    Public ReadOnly Property Quantity() As Integer 
        Get
            Return _quantity
        End Get
    End Property
    
    Public Sub New(ByVal partNumber As Integer, _
                   ByVal description As String, _
                   ByVal quantity As Integer, _
                   ByVal unitPrice As Double) 
        _partNumber = partNumber
        _description = description
        _quantity = quantity
        _unitPrice = unitPrice
    End Sub
        
    Public Overrides Function ToString() As String 
        Return String.Format( _
            "{0,9} {1,6} {2,-12} at {3,8:#,###.00} = {4,10:###,###.00}", _
            PartNumber, _quantity, Description, UnitPrice, _
            UnitPrice * _quantity)
    End Function
End Class

' This code example produces the following output:
'
'Widget (quantity 400) was Added.
'Sprocket (quantity 27) was Added.
'Motor (quantity 10) was Added.
'Gear (quantity 175) was Added.
'
'110072674    400 Widget       at    45.17 =  18,068.00
'110072675     27 Sprocket     at     5.30 =     143.10
'101030411     10 Motor        at   237.50 =   2,375.00
'110072684    175 Gear         at     5.17 =     904.75
'
'Contains(101030411): True
'
'weekly(101030411).Description: Motor
'
'Remove(101030411)
'Motor (quantity 10) was Removed.
'
'Insert(2, New OrderItem(...))
'Nut (quantity 10) was Added.
'
'coweekly(2).Description: Nut
'
'coweekly(2) = New OrderItem(...)
'Nut (quantity 10) was replaced by Crank, (quantity 27).
'
'IndexOf(temp): 2
'
'Remove(temp)
'Crank (quantity 27) was Removed.
'
'RemoveAt(0)
'Widget (quantity 400) was Removed.
'
'coweekly(1) = New OrderItem(...)
'Gear (quantity 175) was replaced by Gear, (quantity 1175).
'
'110072675     27 Sprocket     at     5.30 =     143.10
'110072684   1175 Gear         at     5.17 =   6,074.75
'
'The order list was cleared.

Keterangan

Kelas ini KeyedCollection<TKey,TItem> menyediakan pengambilan terindeks O(1) dan pengambilan kunci yang mendekati O(1). Ini adalah jenis abstrak, atau lebih akurat sekumpulan jenis abstrak tak terbatas, karena masing-masing jenis generik yang dibangun adalah kelas dasar abstrak. Untuk menggunakan KeyedCollection<TKey,TItem>, dapatkan jenis koleksi Anda dari jenis konstruksi yang sesuai.

Kelas KeyedCollection<TKey,TItem> ini adalah hibrid antara koleksi berdasarkan IList<T> antarmuka generik dan koleksi berdasarkan IDictionary<TKey,TValue> antarmuka generik. Seperti koleksi berdasarkan IList<T> antarmuka generik, KeyedCollection<TKey,TItem> adalah daftar item yang diindeks. Seperti koleksi berdasarkan IDictionary<TKey,TValue> antarmuka generik, KeyedCollection<TKey,TItem> memiliki kunci yang terkait dengan setiap elemen.

Tidak seperti kamus, elemen KeyedCollection<TKey,TItem> bukan pasangan kunci/nilai; sebaliknya, seluruh elemen adalah nilai dan kunci disematkan dalam nilai . Misalnya, elemen koleksi yang berasal dari KeyedCollection\<String,String> (KeyedCollection(Of String, String) dalam Visual Basic) mungkin adalah "John Doe Jr." di mana nilainya adalah "John Doe Jr." dan kuncinya adalah "Doe"; atau kumpulan rekaman karyawan yang berisi kunci bilangan bulat dapat berasal dari KeyedCollection\<int,Employee>. Metode abstrak GetKeyForItem mengekstrak kunci dari elemen .

Secara default, KeyedCollection<TKey,TItem> menyertakan kamus pencarian yang dapat Anda peroleh Dictionary dengan properti . Saat item ditambahkan ke KeyedCollection<TKey,TItem>, kunci item diekstrak sekali dan disimpan dalam kamus pencarian untuk pencarian yang lebih cepat. Perilaku ini ditimpa dengan menentukan ambang pembuatan kamus saat Anda membuat KeyedCollection<TKey,TItem>. Kamus pencarian dibuat pertama kali jumlah elemen melebihi ambang batas tersebut. Jika Anda menentukan -1 sebagai ambang batas, kamus pencarian tidak pernah dibuat.

Nota

Saat kamus pencarian internal digunakan, kamus tersebut berisi referensi ke semua item dalam koleksi jika TItem merupakan jenis referensi, atau salinan semua item dalam koleksi jika TItem merupakan jenis nilai. Dengan demikian, menggunakan kamus pencarian mungkin tidak sesuai jika TItem merupakan jenis nilai.

Anda dapat mengakses item berdasarkan indeks atau kuncinya dengan menggunakan Item[] properti . Anda dapat menambahkan item tanpa kunci, tetapi item ini kemudian hanya dapat diakses dengan indeks.

Konstruktor

Nama Deskripsi
KeyedCollection<TKey,TItem>()

Menginisialisasi instans KeyedCollection<TKey,TItem> baru kelas yang menggunakan perbandingan kesetaraan default.

KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>, Int32)

Menginisialisasi instans KeyedCollection<TKey,TItem> baru kelas yang menggunakan perbandingan kesetaraan yang ditentukan dan membuat kamus pencarian saat ambang batas yang ditentukan terlampaui.

KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>)

Menginisialisasi instans KeyedCollection<TKey,TItem> baru kelas yang menggunakan perbandingan kesetaraan yang ditentukan.

Properti

Nama Deskripsi
Comparer

Mendapatkan perbandingan kesetaraan generik yang digunakan untuk menentukan kesetaraan kunci dalam koleksi.

Count

Mendapatkan jumlah elemen yang benar-benar terkandung dalam Collection<T>.

(Diperoleh dari Collection<T>)
Dictionary

Mendapatkan kamus pencarian dari KeyedCollection<TKey,TItem>.

Item[Int32]

Mendapatkan atau mengatur elemen pada indeks yang ditentukan.

(Diperoleh dari Collection<T>)
Item[TKey]

Mendapatkan elemen dengan kunci yang ditentukan.

Items

Mendapatkan pembungkus IList<T> di Collection<T>sekitar .

(Diperoleh dari Collection<T>)

Metode

Nama Deskripsi
Add(T)

Menambahkan objek ke akhir Collection<T>.

(Diperoleh dari Collection<T>)
ChangeItemKey(TItem, TKey)

Mengubah kunci yang terkait dengan elemen yang ditentukan dalam kamus pencarian.

Clear()

Menghapus semua elemen dari Collection<T>.

(Diperoleh dari Collection<T>)
ClearItems()

Menghapus semua elemen dari KeyedCollection<TKey,TItem>.

Contains(TKey)

Menentukan apakah koleksi berisi elemen dengan kunci yang ditentukan.

CopyTo(T[], Int32)

Menyalin seluruh Collection<T> ke satu dimensi Arrayyang kompatibel , dimulai pada indeks array target yang ditentukan.

(Diperoleh dari Collection<T>)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetEnumerator()

Mengembalikan enumerator yang berulang melalui Collection<T>.

(Diperoleh dari Collection<T>)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetKeyForItem(TItem)

Saat diimplementasikan dalam kelas turunan, mengekstrak kunci dari elemen yang ditentukan.

GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
IndexOf(T)

Mencari objek yang ditentukan dan mengembalikan indeks berbasis nol dari kemunculan pertama dalam seluruh Collection<T>.

(Diperoleh dari Collection<T>)
Insert(Int32, T)

Menyisipkan elemen ke Collection<T> dalam pada indeks yang ditentukan.

(Diperoleh dari Collection<T>)
InsertItem(Int32, T)

Menyisipkan elemen ke Collection<T> dalam pada indeks yang ditentukan.

(Diperoleh dari Collection<T>)
InsertItem(Int32, TItem)

Menyisipkan elemen ke KeyedCollection<TKey,TItem> dalam pada indeks yang ditentukan.

MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Remove(TKey)

Menghapus elemen dengan kunci yang ditentukan dari KeyedCollection<TKey,TItem>.

RemoveAt(Int32)

Menghapus elemen pada indeks yang ditentukan dari Collection<T>.

(Diperoleh dari Collection<T>)
RemoveItem(Int32)

Menghapus elemen pada indeks yang ditentukan dari KeyedCollection<TKey,TItem>.

SetItem(Int32, T)

Mengganti elemen pada indeks yang ditentukan.

(Diperoleh dari Collection<T>)
SetItem(Int32, TItem)

Mengganti item pada indeks yang ditentukan dengan item yang ditentukan.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TryGetValue(TKey, TItem)

Mencoba mendapatkan item dari koleksi menggunakan kunci yang ditentukan.

Implementasi Antarmuka Eksplisit

Nama Deskripsi
ICollection.CopyTo(Array, Int32)

Menyalin elemen ICollection ke Array, dimulai pada indeks tertentu Array .

(Diperoleh dari Collection<T>)
ICollection.IsSynchronized

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

(Diperoleh dari Collection<T>)
ICollection.SyncRoot

Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke ICollection.

(Diperoleh dari Collection<T>)
ICollection<T>.IsReadOnly

Mendapatkan nilai yang menunjukkan apakah ICollection<T> bersifat baca-saja.

(Diperoleh dari Collection<T>)
IEnumerable.GetEnumerator()

Mengembalikan enumerator yang melakukan iterasi melalui koleksi.

(Diperoleh dari Collection<T>)
IList.Add(Object)

Menambahkan item ke IList.

(Diperoleh dari Collection<T>)
IList.Contains(Object)

Menentukan apakah IList berisi nilai tertentu.

(Diperoleh dari Collection<T>)
IList.IndexOf(Object)

Menentukan indeks item tertentu di IList.

(Diperoleh dari Collection<T>)
IList.Insert(Int32, Object)

Menyisipkan item ke IList dalam pada indeks yang ditentukan.

(Diperoleh dari Collection<T>)
IList.IsFixedSize

Mendapatkan nilai yang menunjukkan apakah IList memiliki ukuran tetap.

(Diperoleh dari Collection<T>)
IList.IsReadOnly

Mendapatkan nilai yang menunjukkan apakah IList bersifat baca-saja.

(Diperoleh dari Collection<T>)
IList.Item[Int32]

Mendapatkan atau mengatur elemen pada indeks yang ditentukan.

(Diperoleh dari Collection<T>)
IList.Remove(Object)

Menghapus kemunculan pertama objek tertentu dari IList.

(Diperoleh dari Collection<T>)

Metode Ekstensi

Nama Deskripsi
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.

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>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)

Menerapkan fungsi akumulator secara berurutan.

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

Menerapkan fungsi akumulator secara berurutan, mengelompokkan hasil menurut kunci.

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

Menerapkan fungsi akumulator secara berurutan, mengelompokkan hasil menurut kunci.

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

Menentukan apakah semua elemen urutan memenuhi suatu kondisi.

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.

Ancestors<T>(IEnumerable<T>)

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

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

Menentukan apakah ada elemen urutan yang memenuhi kondisi.

Any<TSource>(IEnumerable<TSource>)

Menentukan apakah urutan berisi elemen apa pun.

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

Menambahkan nilai ke akhir urutan.

AsEnumerable<TSource>(IEnumerable<TSource>)

Mengembalikan input yang diketik sebagai IEnumerable<T>.

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 .

AsReadOnly<T>(IList<T>)

Mengembalikan pembungkus baca-saja ReadOnlyCollection<T> untuk daftar yang ditentukan.

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, IEqualityComparer<TSource>)

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

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

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

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

Menyalin objek DataRow ke DataTableyang ditentukan , 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>)

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

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

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

Count<TSource>(IEnumerable<TSource>)

Mengembalikan jumlah elemen secara berurutan.

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

Mengembalikan jumlah elemen dalam urutan sumber yang dikelompokkan menurut kunci.

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

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

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

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

DescendantNodes<T>(IEnumerable<T>)

Mengembalikan kumpulan simpul turunan dari setiap dokumen dan elemen 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.

Descendants<T>(IEnumerable<T>)

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

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

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

Distinct<TSource>(IEnumerable<TSource>)

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

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.

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

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

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.

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.

Elements<T>(IEnumerable<T>)

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

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

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

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

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

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.

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

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

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

Mengembalikan elemen pertama dalam urutan yang memenuhi kondisi tertentu.

First<TSource>(IEnumerable<TSource>)

Mengembalikan elemen pertama dari urutan.

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.

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

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

FirstOrDefault<TSource>(IEnumerable<TSource>)

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

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.

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>(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,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,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,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>(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>(IEnumerable<TSource>, Func<TSource,TKey>)

Mengelompokkan elemen urutan sesuai dengan fungsi pemilih kunci tertentu.

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.

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.

Index<TSource>(IEnumerable<TSource>)

Mengembalikan enumerable yang menggabungkan indeks elemen ke dalam tuple.

InDocumentOrder<T>(IEnumerable<T>)

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

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

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

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

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

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.

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,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>, IEqualityComparer<TKey>)

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

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.

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

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi yang ditentukan.

Last<TSource>(IEnumerable<TSource>)

Mengembalikan elemen terakhir dari urutan.

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.

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

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

LastOrDefault<TSource>(IEnumerable<TSource>)

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

LeftJoin<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.

LeftJoin<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.

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

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

LongCount<TSource>(IEnumerable<TSource>)

Mengembalikan Int64 yang menunjukkan jumlah total elemen secara berurutan.

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

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

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>(IEnumerable<TSource>, IComparer<TSource>)

Mengembalikan nilai maksimum dalam urutan generik.

Max<TSource>(IEnumerable<TSource>)

Mengembalikan nilai maksimum dalam urutan generik.

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.

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

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

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

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

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>(IEnumerable<TSource>, IComparer<TSource>)

Mengembalikan nilai minimum dalam urutan generik.

Min<TSource>(IEnumerable<TSource>)

Mengembalikan nilai minimum dalam urutan generik.

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.

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

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

Nodes<T>(IEnumerable<T>)

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

OfType<TResult>(IEnumerable)

Memfilter elemen IEnumerable berdasarkan jenis tertentu.

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

Mengurutkan elemen urutan dalam urutan naik.

Order<T>(IEnumerable<T>)

Mengurutkan elemen urutan dalam urutan naik.

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

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

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

Mengurutkan elemen urutan dalam urutan naik sesuai dengan kunci.

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

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

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

Mengurutkan elemen urutan dalam urutan turun sesuai dengan kunci.

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

Mengurutkan elemen urutan dalam urutan turun.

OrderDescending<T>(IEnumerable<T>)

Mengurutkan elemen urutan dalam urutan turun.

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

Menambahkan nilai ke awal urutan.

Remove<T>(IEnumerable<T>)

Menghapus setiap simpul dalam kumpulan sumber dari simpul induknya.

Reverse<TSource>(IEnumerable<TSource>)

Menginversi urutan elemen secara berurutan.

RightJoin<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.

RightJoin<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.

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

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

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

Memproyeksikan setiap elemen urutan ke dalam bentuk baru.

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.

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.

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

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

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

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

Shuffle<TSource>(IEnumerable<TSource>)

Mengacak urutan elemen 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.

Single<TSource>(IEnumerable<TSource>)

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

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.

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

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

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

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

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

Mengembalikan koleksi enumerable baru yang berisi elemen dari source dengan elemen terakhir count dari koleksi 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 terakhir count 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>.

ToAsyncEnumerable<TSource>(IEnumerable<TSource>)

Membuat baru IAsyncEnumerable<T> yang berulang melalui source.

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.

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>(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>(IEnumerable<TSource>, Func<TSource,TKey>)

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

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.

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

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

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

FrozenSet<T> Membuat dengan nilai yang ditentukan.

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

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

ToHashSet<TSource>(IEnumerable<TSource>)

Membuat HashSet<T> dari IEnumerable<T>.

ToImmutableArray<TSource>(IEnumerable<TSource>)

Membuat array yang tidak dapat diubah dari koleksi 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.

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

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

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

Membangun kamus yang tidak dapat diubah berdasarkan beberapa transformasi urutan.

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.

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.

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

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

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>, 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.

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

Menghitung dan mengubah urutan, dan menghasilkan kamus kontennya yang diurutkan 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.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

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

ToList<TSource>(IEnumerable<TSource>)

Membuat List<T> dari IEnumerable<T>.

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.

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>(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>(IEnumerable<TSource>, Func<TSource,TKey>)

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

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

Mencoba menentukan jumlah elemen dalam urutan tanpa memaksa enumerasi.

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

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

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

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

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.

UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,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,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)

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

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

Menghasilkan urutan tuple dengan elemen dari tiga urutan yang ditentukan.

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

Menghasilkan urutan tuple dengan elemen dari dua urutan yang ditentukan.

Berlaku untuk

Lihat juga