KeyedCollection<TKey,TItem> Klass

Definition

Tillhandahåller den abstrakta basklassen för en samling vars nycklar är inbäddade i värdena.

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)

Typparametrar

TKey

Typ av nycklar i samlingen.

TItem

Typ av objekt i samlingen.

Arv
Collection<TItem>
KeyedCollection<TKey,TItem>
Härledda
Attribut

Exempel

Det här avsnittet innehåller två kodexempel. Det första exemplet visar den minsta kod som krävs för att härleda från KeyedCollection<TKey,TItem>och visar många av de ärvda metoderna. Det andra exemplet visar hur du åsidosätter de skyddade metoderna KeyedCollection<TKey,TItem> för att tillhandahålla anpassat beteende.

Exempel 1

Det här kodexemplet visar den minsta kod som krävs för att härleda en samlingsklass från KeyedCollection<TKey,TItem>: åsidosätta GetKeyForItem metoden och tillhandahålla en offentlig konstruktor som delegerar till en basklasskonstruktor. Kodexemplet visar också många av de egenskaper och metoder som ärvts från KeyedCollection<TKey,TItem> och Collection<T> klasser.

Klassen SimpleOrder är en mycket enkel rekvisitionslista som innehåller OrderItem objekt, som var och en representerar ett radobjekt i ordningen. Nyckeln OrderItem till är oföränderlig, ett viktigt övervägande för klasser som härleds från KeyedCollection<TKey,TItem>. Ett kodexempel som använder föränderliga nycklar finns i 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

Exempel 2

I följande kodexempel visas hur du åsidosätter de skyddade InsertItemmetoderna , RemoveItem, ClearItemsoch SetItem för att ange anpassat beteende för Addmetoderna , Removeoch Clear och för att ange standardegenskapen Item[] (indexeraren i C#). Det anpassade beteendet i det här exemplet är en meddelandehändelse med namnet Changed, som genereras i slutet av var och en av de åsidosatta metoderna.

Kodexemplet skapar SimpleOrder klassen, som härleds från KeyedCollection<TKey,TItem> och representerar ett enkelt orderformulär. Orderformuläret innehåller OrderItem objekt som representerar ordnade objekt. Kodexemplet skapar också en SimpleOrderChangedEventArgs klass som innehåller händelseinformationen och en uppräkning för att identifiera typen av ändring.

Kodexemplet visar det anpassade beteendet genom att anropa egenskaperna och metoderna för den härledda klassen i Main -klassens Demo metod.

I det här kodexemplet används objekt med oföränderliga nycklar. Ett kodexempel som använder föränderliga nycklar finns i 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.

Kommentarer

Klassen KeyedCollection<TKey,TItem> innehåller både O(1) indexerad hämtning och nyckelbaserad hämtning som närmar sig O(1). Det är en abstrakt typ, eller mer exakt en oändlig uppsättning abstrakta typer, eftersom var och en av dess konstruerade generiska typer är en abstrakt basklass. Om du vill använda KeyedCollection<TKey,TItem>härleder du din samlingstyp från lämplig konstruktionstyp.

Klassen KeyedCollection<TKey,TItem> är en hybrid mellan en samling baserat på det IList<T> generiska gränssnittet och en samling baserat på det IDictionary<TKey,TValue> generiska gränssnittet. Precis som samlingar baserade på det IList<T> allmänna gränssnittet KeyedCollection<TKey,TItem> är en indexerad lista över objekt. Precis som samlingar baserade på det IDictionary<TKey,TValue> allmänna gränssnittet KeyedCollection<TKey,TItem> har en nyckel associerad med varje element.

Till skillnad från ordlistor är ett element i KeyedCollection<TKey,TItem> inte ett nyckel/värde-par. I stället är hela elementet värdet och nyckeln bäddas in i värdet. Till exempel kan ett element i en samling som härletts från KeyedCollection\<String,String> (KeyedCollection(Of String, String) i Visual Basic) vara "John Doe Jr." där värdet är "John Doe Jr." och nyckeln är "Doe"; eller en samling med anställdas poster som innehåller heltalsnycklar kan härledas från KeyedCollection\<int,Employee>. Den abstrakta GetKeyForItem metoden extraherar nyckeln från elementet.

Innehåller som standard KeyedCollection<TKey,TItem> en uppslagsordlista som du kan hämta med egenskapen Dictionary . När ett objekt läggs till i KeyedCollection<TKey,TItem>extraheras objektets nyckel en gång och sparas i uppslagsordlistan för snabbare sökningar. Det här beteendet åsidosättas genom att ange ett tröskelvärde för att skapa en ordlista när du skapar KeyedCollection<TKey,TItem>. Uppslagsordlistan skapas första gången antalet element överskrider tröskelvärdet. Om du anger -1 som tröskelvärde skapas aldrig uppslagsordlistan.

Note

När den interna uppslagsordlistan används innehåller den referenser till alla objekt i samlingen om TItem det är en referenstyp eller kopior av alla objekt i samlingen om TItem det är en värdetyp. Det är därför inte lämpligt att använda uppslagsordlistan om TItem det är en värdetyp.

Du kan komma åt ett objekt med dess index eller nyckel med hjälp Item[] av egenskapen . Du kan lägga till objekt utan en nyckel, men dessa objekt kan senare endast nås via index.

Konstruktorer

Name Description
KeyedCollection<TKey,TItem>()

Initierar en ny instans av KeyedCollection<TKey,TItem> klassen som använder standardjämförlikningsjämföraren.

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

Initierar en ny instans av KeyedCollection<TKey,TItem> klassen som använder den angivna likhetsjämföraren och skapar en uppslagsordlista när det angivna tröskelvärdet överskrids.

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

Initierar en ny instans av KeyedCollection<TKey,TItem> klassen som använder den angivna likhetsjämföraren.

Egenskaper

Name Description
Comparer

Hämtar den generiska likhetsjämföraren som används för att fastställa likheten mellan nycklar i samlingen.

Count

Hämtar antalet element som faktiskt finns i Collection<T>.

(Ärvd från Collection<T>)
Dictionary

Hämtar uppslagsordlistan för KeyedCollection<TKey,TItem>.

Item[Int32]

Hämtar eller anger elementet vid det angivna indexet.

(Ärvd från Collection<T>)
Item[TKey]

Hämtar elementet med den angivna nyckeln.

Items

Hämtar en IList<T> omslutning runt Collection<T>.

(Ärvd från Collection<T>)

Metoder

Name Description
Add(T)

Lägger till ett objekt i slutet av Collection<T>.

(Ärvd från Collection<T>)
ChangeItemKey(TItem, TKey)

Ändrar nyckeln som är associerad med det angivna elementet i uppslagsordlistan.

Clear()

Tar bort alla element från Collection<T>.

(Ärvd från Collection<T>)
ClearItems()

Tar bort alla element från KeyedCollection<TKey,TItem>.

Contains(TKey)

Avgör om samlingen innehåller ett element med den angivna nyckeln.

CopyTo(T[], Int32)

Kopierar hela Collection<T> till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen.

(Ärvd från Collection<T>)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetEnumerator()

Returnerar en uppräkning som itererar genom Collection<T>.

(Ärvd från Collection<T>)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetKeyForItem(TItem)

När den implementeras i en härledd klass extraheras nyckeln från det angivna elementet.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IndexOf(T)

Söker efter det angivna objektet och returnerar det nollbaserade indexet för den första förekomsten i hela Collection<T>.

(Ärvd från Collection<T>)
Insert(Int32, T)

Infogar ett element i Collection<T> det angivna indexet.

(Ärvd från Collection<T>)
InsertItem(Int32, T)

Infogar ett element i Collection<T> det angivna indexet.

(Ärvd från Collection<T>)
InsertItem(Int32, TItem)

Infogar ett element i KeyedCollection<TKey,TItem> det angivna indexet.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Remove(TKey)

Tar bort elementet med den angivna nyckeln från KeyedCollection<TKey,TItem>.

RemoveAt(Int32)

Tar bort elementet i det angivna indexet för Collection<T>.

(Ärvd från Collection<T>)
RemoveItem(Int32)

Tar bort elementet i det angivna indexet för KeyedCollection<TKey,TItem>.

SetItem(Int32, T)

Ersätter elementet i det angivna indexet.

(Ärvd från Collection<T>)
SetItem(Int32, TItem)

Ersätter objektet i det angivna indexet med det angivna objektet.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TryGetValue(TKey, TItem)

Försöker hämta ett objekt från samlingen med hjälp av den angivna nyckeln.

Explicita gränssnittsimplementeringar

Name Description
ICollection.CopyTo(Array, Int32)

Kopierar elementen i ICollection till en Array, med början vid ett visst Array index.

(Ärvd från Collection<T>)
ICollection.IsSynchronized

Hämtar ett värde som anger om åtkomsten ICollection till är synkroniserad (trådsäker).

(Ärvd från Collection<T>)
ICollection.SyncRoot

Hämtar ett objekt som kan användas för att synkronisera åtkomsten ICollectiontill .

(Ärvd från Collection<T>)
ICollection<T>.IsReadOnly

Hämtar ett värde som anger om är ICollection<T> skrivskyddat.

(Ärvd från Collection<T>)
IEnumerable.GetEnumerator()

Returnerar en uppräknare som itererar genom en samling.

(Ärvd från Collection<T>)
IList.Add(Object)

Lägger till ett objekt i IList.

(Ärvd från Collection<T>)
IList.Contains(Object)

Avgör om innehåller IList ett specifikt värde.

(Ärvd från Collection<T>)
IList.IndexOf(Object)

Avgör indexet för ett specifikt objekt i IList.

(Ärvd från Collection<T>)
IList.Insert(Int32, Object)

Infogar ett objekt i IList det angivna indexet.

(Ärvd från Collection<T>)
IList.IsFixedSize

Hämtar ett värde som anger om har IList en fast storlek.

(Ärvd från Collection<T>)
IList.IsReadOnly

Hämtar ett värde som anger om är IList skrivskyddat.

(Ärvd från Collection<T>)
IList.Item[Int32]

Hämtar eller anger elementet vid det angivna indexet.

(Ärvd från Collection<T>)
IList.Remove(Object)

Tar bort den första förekomsten av ett specifikt objekt från IList.

(Ärvd från Collection<T>)

Tilläggsmetoder

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

Använder en ackumulatorfunktion över en sekvens. Det angivna startvärdet används som det initiala ackumulatorvärdet och den angivna funktionen används för att välja resultatvärdet.

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

Använder en ackumulatorfunktion över en sekvens. Det angivna startvärdet används som det initiala ackumulatorvärdet.

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

Använder en ackumulatorfunktion över en sekvens.

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

Avgör om alla element i en sekvens uppfyller ett villkor.

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

Returnerar en filtrerad samling element som innehåller överordnade element för varje nod i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Ancestors<T>(IEnumerable<T>)

Returnerar en samling element som innehåller överordnade element för varje nod i källsamlingen.

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

Avgör om något element i en sekvens uppfyller ett villkor.

Any<TSource>(IEnumerable<TSource>)

Avgör om en sekvens innehåller några element.

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

Lägger till ett värde i slutet av sekvensen.

AsEnumerable<TSource>(IEnumerable<TSource>)

Returnerar indata som skrivits som IEnumerable<T>.

AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsParallel<TSource>(IEnumerable<TSource>)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

AsQueryable<TElement>(IEnumerable<TElement>)

Konverterar en allmän IEnumerable<T> till en allmän IQueryable<T>.

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

Beräknar medelvärdet av en sekvens med Decimal värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med Double värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med Int32 värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med Int64 värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med null-värden Decimal som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med null-värden Double som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med null-värden Int32 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med null-värden Int64 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med null-värden Single som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar medelvärdet av en sekvens med Single värden som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

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

Sammanfogar två sekvenser.

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

Avgör om en sekvens innehåller ett angivet element med hjälp av en angiven IEqualityComparer<T>.

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

Avgör om en sekvens innehåller ett angivet element med hjälp av standardjämförlikningsjämföraren.

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

Kopierar DataRow objekt till angivet DataTable, givet ett indataobjekt IEnumerable<T> där den generiska parametern T är DataRow.

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

Kopierar DataRow objekt till angivet DataTable, givet ett indataobjekt IEnumerable<T> där den generiska parametern T är DataRow.

CopyToDataTable<T>(IEnumerable<T>)

Returnerar en DataTable som innehåller kopior av objekten DataRow , givet ett indataobjekt IEnumerable<T> där den generiska parametern T är DataRow.

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

Returnerar ett tal som representerar hur många element i den angivna sekvensen som uppfyller ett villkor.

Count<TSource>(IEnumerable<TSource>)

Returnerar antalet element i en sekvens.

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

Returnerar elementen i den angivna sekvensen eller det angivna värdet i en singleton-samling om sekvensen är tom.

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Returnerar elementen i den angivna sekvensen eller typparameterns standardvärde i en singleton-samling om sekvensen är tom.

DescendantNodes<T>(IEnumerable<T>)

Returnerar en samling underordnade noder i varje dokument och element i källsamlingen.

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

Returnerar en filtrerad samling element som innehåller underordnade element för varje element och dokument i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Descendants<T>(IEnumerable<T>)

Returnerar en samling element som innehåller underordnade element för varje element och dokument i källsamlingen.

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

Returnerar distinkta element från en sekvens med hjälp av en angiven IEqualityComparer<T> för att jämföra värden.

Distinct<TSource>(IEnumerable<TSource>)

Returnerar distinkta element från en sekvens med hjälp av standardjämlikhetsjämföraren för att jämföra värden.

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

Returnerar elementet vid ett angivet index i en sekvens.

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

Returnerar elementet vid ett angivet index i en sekvens eller ett standardvärde om indexet ligger utom intervallet.

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

Returnerar en filtrerad samling av underordnade element i varje element och dokument i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Elements<T>(IEnumerable<T>)

Returnerar en samling underordnade element i varje element och dokument i källsamlingen.

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

Skapar den inställda skillnaden mellan två sekvenser med hjälp av angivna IEqualityComparer<T> för att jämföra värden.

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

Ger den angivna skillnaden mellan två sekvenser genom att använda standardjämlikhetsjämförlikningsjämföraren för att jämföra värden.

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

Returnerar det första elementet i en sekvens som uppfyller ett angivet villkor.

First<TSource>(IEnumerable<TSource>)

Returnerar det första elementet i en sekvens.

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

Returnerar det första elementet i sekvensen som uppfyller ett villkor eller ett standardvärde om inget sådant element hittas.

FirstOrDefault<TSource>(IEnumerable<TSource>)

Returnerar det första elementet i en sekvens eller ett standardvärde om sekvensen inte innehåller några element.

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

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel. Nyckelvärden jämförs med en angiven jämförelse, och elementen i varje grupp projiceras med hjälp av en angiven funktion.

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

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel. Elementen i varje grupp projiceras med hjälp av en angiven funktion.

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

Grupperar elementen i en sekvens enligt en nyckelväljare. Nycklarna jämförs med en jämförelse och varje grupps element projiceras med hjälp av en angiven funktion.

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

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och projicerar elementen för varje grupp med hjälp av en angiven funktion.

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

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel. Nycklarna jämförs med en angiven jämförelse.

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

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och skapar ett resultatvärde från varje grupp och dess nyckel.

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

Grupperar elementen i en sekvens enligt en angiven nyckelväljare och jämför nycklarna med hjälp av en angiven jämförelse.

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

Grupperar elementen i en sekvens enligt en angiven nyckelväljare.

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

Korrelerar elementen i två sekvenser baserat på nyckeljämlikhet och grupperar resultaten. En angiven IEqualityComparer<T> används för att jämföra nycklar.

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

Korrelerar elementen i två sekvenser baserat på likhet mellan nycklar och grupperar resultatet. Standardjämförlikningsjämföraren används för att jämföra nycklar.

InDocumentOrder<T>(IEnumerable<T>)

Returnerar en samling noder som innehåller alla noder i källsamlingen, sorterade i dokumentordning.

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

Skapar den angivna skärningspunkten mellan två sekvenser med hjälp av angivna IEqualityComparer<T> för att jämföra värden.

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

Genererar den angivna skärningspunkten för två sekvenser med hjälp av standardjämlikhetsjämförlikningsjämföraren för att jämföra värden.

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

Korrelerar elementen i två sekvenser baserat på matchande nycklar. En angiven IEqualityComparer<T> används för att jämföra nycklar.

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

Korrelerar elementen i två sekvenser baserat på matchande nycklar. Standardjämförlikningsjämföraren används för att jämföra nycklar.

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

Returnerar det sista elementet i en sekvens som uppfyller ett angivet villkor.

Last<TSource>(IEnumerable<TSource>)

Returnerar det sista elementet i en sekvens.

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

Returnerar det sista elementet i en sekvens som uppfyller ett villkor eller ett standardvärde om inget sådant element hittas.

LastOrDefault<TSource>(IEnumerable<TSource>)

Returnerar det sista elementet i en sekvens eller ett standardvärde om sekvensen inte innehåller några element.

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

Returnerar ett Int64 som representerar hur många element i en sekvens som uppfyller ett villkor.

LongCount<TSource>(IEnumerable<TSource>)

Returnerar ett Int64 som representerar det totala antalet element i en sekvens.

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

Anropar en transformeringsfunktion på varje element i en allmän sekvens och returnerar det maximala resulterande värdet.

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Decimal värdet.

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Double värdet.

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Int32 värdet.

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Int64 värdet.

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Decimal .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Double .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Int32 .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Int64 .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala null-värdet Single .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det maximala Single värdet.

Max<TSource>(IEnumerable<TSource>)

Returnerar det maximala värdet i en allmän sekvens.

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

Anropar en transformeringsfunktion på varje element i en allmän sekvens och returnerar det lägsta resulterande värdet.

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Decimal .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Double .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Int32 .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Int64 .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Decimal .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Double .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Int32 .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Int64 .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar det lägsta null-värdet Single .

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

Anropar en transformeringsfunktion på varje element i en sekvens och returnerar minimivärdet Single .

Min<TSource>(IEnumerable<TSource>)

Returnerar minimivärdet i en allmän sekvens.

Nodes<T>(IEnumerable<T>)

Returnerar en samling av de underordnade noderna i varje dokument och element i källsamlingen.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

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

Sorterar elementen i en sekvens i stigande ordning med hjälp av en angiven jämförelse.

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

Sorterar elementen i en sekvens i stigande ordning enligt en nyckel.

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

Sorterar elementen i en sekvens i fallande ordning med hjälp av en angiven jämförelse.

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

Sorterar elementen i en sekvens i fallande ordning enligt en nyckel.

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

Lägger till ett värde i början av sekvensen.

Remove<T>(IEnumerable<T>)

Tar bort varje nod i källsamlingen från den överordnade noden.

Reverse<TSource>(IEnumerable<TSource>)

Invertera ordningen på elementen i en sekvens.

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

Projicerar varje element i en sekvens i ett nytt formulär genom att införliva elementets index.

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

Projicerar varje element i en sekvens till ett nytt formulär.

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

Projicerar varje element i en sekvens till en IEnumerable<T>, jämnar ut de resulterande sekvenserna i en sekvens och anropar en resultatväljarefunktion på varje element däri.

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

Projicerar varje element i en sekvens till en IEnumerable<T>, jämnar ut de resulterande sekvenserna i en sekvens och anropar en resultatväljarefunktion på varje element däri. Indexet för varje källelement används i den mellanliggande projekterade formen av det elementet.

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

Projicerar varje element i en sekvens till en IEnumerable<T> och jämnar ut de resulterande sekvenserna i en sekvens.

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

Projicerar varje element i en sekvens till en IEnumerable<T>, och jämnar ut de resulterande sekvenserna i en sekvens. Indexet för varje källelement används i den projekterade formen av det elementet.

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

Avgör om två sekvenser är lika med genom att jämföra deras element med hjälp av en angiven IEqualityComparer<T>.

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

Avgör om två sekvenser är lika med genom att jämföra elementen med hjälp av standardjämlikhetsjämföraren för deras typ.

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

Returnerar det enda elementet i en sekvens som uppfyller ett angivet villkor och genererar ett undantag om mer än ett sådant element finns.

Single<TSource>(IEnumerable<TSource>)

Returnerar det enda elementet i en sekvens och genererar ett undantag om det inte finns exakt ett element i sekvensen.

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

Returnerar det enda elementet i en sekvens som uppfyller ett angivet villkor eller ett standardvärde om det inte finns något sådant element. den här metoden utlöser ett undantag om fler än ett element uppfyller villkoret.

SingleOrDefault<TSource>(IEnumerable<TSource>)

Returnerar det enda elementet i en sekvens eller ett standardvärde om sekvensen är tom. den här metoden utlöser ett undantag om det finns fler än ett element i sekvensen.

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

Kringgår ett angivet antal element i en sekvens och returnerar sedan de återstående elementen.

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

Returnerar en ny uppräkningsbar samling som innehåller elementen från source med de sista count elementen i källsamlingen som utelämnas.

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

Kringgår element i en sekvens så länge ett angivet villkor är sant och returnerar sedan de återstående elementen.

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

Kringgår element i en sekvens så länge ett angivet villkor är sant och returnerar sedan de återstående elementen. Elementets index används i logiken i predikatfunktionen.

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

Beräknar summan av sekvensen med Decimal värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med Double värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med Int32 värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med Int64 värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med null-värden Decimal som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med null-värden Double som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med null-värden Int32 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med null-värden Int64 som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med null-värden Single som erhålls genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Beräknar summan av sekvensen med Single värden som hämtas genom att anropa en transformeringsfunktion på varje element i indatasekvensen.

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

Returnerar ett angivet antal sammanhängande element från början av en sekvens.

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

Returnerar en ny uppräkningsbar samling som innehåller de sista count elementen från source.

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

Returnerar element från en sekvens så länge ett angivet villkor är sant.

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

Returnerar element från en sekvens så länge ett angivet villkor är sant. Elementets index används i logiken i predikatfunktionen.

ToArray<TSource>(IEnumerable<TSource>)

Skapar en matris från en IEnumerable<T>.

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

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare, en jämförelsefunktion och en elementväljare.

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

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt angivna funktioner för nyckelväljare och elementväljare.

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

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare och nyckeljäxare.

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

Skapar en Dictionary<TKey,TValue> från en IEnumerable<T> enligt en angiven nyckelväljare.

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

Skapar en HashSet<T> från en IEnumerable<T> med hjälp av comparer för att jämföra nycklar.

ToHashSet<TSource>(IEnumerable<TSource>)

Skapar en HashSet<T> från en IEnumerable<T>.

ToImmutableArray<TSource>(IEnumerable<TSource>)

Skapar en oföränderlig matris från den angivna samlingen.

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

Räknar upp och transformerar en sekvens och skapar en oföränderlig ordlista med dess innehåll med hjälp av de angivna nyckel- och värdejäxorna.

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

Räknar upp och transformerar en sekvens och skapar en oföränderlig ordlista med dess innehåll med hjälp av den angivna nyckeljäxaren.

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

Räknar upp och transformerar en sekvens och skapar en oföränderlig ordlista med dess innehåll.

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

Konstruerar en oföränderlig ordlista baserat på en viss omvandling av en sekvens.

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

Konstruerar en oföränderlig ordlista från en befintlig samling element och tillämpar en transformeringsfunktion på källnycklarna.

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

Räknar upp en sekvens, skapar en oföränderlig hashuppsättning av innehållet och använder den angivna likhetsjämföraren för den angivna typen.

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

Räknar upp en sekvens och skapar en oföränderlig hashuppsättning med dess innehåll.

ToImmutableList<TSource>(IEnumerable<TSource>)

Räknar upp en sekvens och skapar en oföränderlig lista över dess innehåll.

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

Räknar upp och transformerar en sekvens och skapar en oföränderlig sorterad ordlista med dess innehåll med hjälp av de angivna nyckel- och värdejäxorna.

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

Räknar upp och transformerar en sekvens och skapar en oföränderlig sorterad ordlista med dess innehåll med hjälp av den angivna nyckeljäxaren.

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

Räknar upp och transformerar en sekvens och skapar en oföränderlig sorterad ordlista med dess innehåll.

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

Räknar upp en sekvens, skapar en oföränderlig sorterad uppsättning av dess innehåll och använder den angivna jämförelsen.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

Räknar upp en sekvens och skapar en oföränderlig sorterad uppsättning av dess innehåll.

ToList<TSource>(IEnumerable<TSource>)

Skapar en List<T> från en IEnumerable<T>.

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

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt en angiven nyckelväljare, en jämförelsefunktion och en elementväljare.

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

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt angivna funktioner för nyckelväljare och elementväljare.

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

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt en angiven nyckelväljare och nyckeljäxare.

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

Skapar en Lookup<TKey,TElement> från en IEnumerable<T> enligt en angiven nyckelväljare.

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

Skapar uppsättningen union av två sekvenser med hjälp av en angiven IEqualityComparer<T>.

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

Skapar uppsättningsunionen med två sekvenser med hjälp av standardjämförlikningsjämföraren.

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

Filtrerar en sekvens med värden baserat på ett predikat.

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

Filtrerar en sekvens med värden baserat på ett predikat. Varje elements index används i logiken i predikatfunktionen.

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

Tillämpar en angiven funktion på motsvarande element i två sekvenser, vilket ger en sekvens av resultaten.

Gäller för

Se även