KeyedCollection<TKey,TItem> Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece a classe base abstrata para uma coleção cujas chaves estão embutidas nos valores.
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)
Parâmetros de Tipo Genérico
- TKey
O tipo de chaves na coleção.
- TItem
O tipo de itens na coleção.
- Herança
- Derivado
- Atributos
Exemplos
Esta seção contém dois exemplos de código. O primeiro exemplo mostra o código mínimo necessário para derivar de KeyedCollection<TKey,TItem>, e demonstra muitos dos métodos herdados. O segundo exemplo mostra como sobrepor os métodos protegidos para KeyedCollection<TKey,TItem> fornecer comportamentos personalizados.
Exemplo 1
Este exemplo de código mostra o código mínimo necessário para derivar uma classe de coleção a partir de KeyedCollection<TKey,TItem>: sobrescrevendo o GetKeyForItem método e fornecendo um construtor público que delega para um construtor de classe base. O exemplo de código também demonstra muitas das propriedades e métodos herdados das KeyedCollection<TKey,TItem> classes e Collection<T> and.
A SimpleOrder classe é uma lista de requisição muito simples que contém OrderItem objetos, cada um dos quais representa um item na ordem. A tonalidade de OrderItem é imutável, uma consideração importante para classes que derivam de KeyedCollection<TKey,TItem>. Para um exemplo de código que usa chaves mutáveis, veja 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
Exemplo 2
O seguinte exemplo de código mostra como sobrescrever os métodos protegidos InsertItem, RemoveItem, ClearItems, e SetItem para fornecer um comportamento personalizado para os Addmétodos , Remove, e Clear para definir a propriedade padrão Item[] (o indexador em C#). O comportamento personalizado fornecido neste exemplo é um evento de notificação chamado Changed, que é levantado no final de cada um dos métodos sobrepostos.
O exemplo do código cria a SimpleOrder classe, que deriva de KeyedCollection<TKey,TItem> e representa uma forma de ordem simples. O formulário de ordem contém OrderItem objetos que representam itens ordenados. O exemplo de código também cria uma SimpleOrderChangedEventArgs classe para conter a informação do evento e uma enumeração para identificar o tipo de alteração.
O exemplo de código demonstra o comportamento personalizado ao chamar as propriedades e métodos da classe derivada, no Main método da Demo classe.
Este exemplo de código usa objetos com chaves imutáveis. Para um exemplo de código que usa chaves mutáveis, veja 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.
Observações
A KeyedCollection<TKey,TItem> classe fornece tanto a recuperação indexada em O(1) como a recuperação em chave que se aproxima de O(1). É um tipo abstrato, ou mais precisamente um conjunto infinito de tipos abstratos, porque cada um dos seus tipos genéricos construídos é uma classe base abstrata. Para usar KeyedCollection<TKey,TItem>, derive o seu tipo de coleção a partir do tipo construído apropriado.
A KeyedCollection<TKey,TItem> classe é um híbrido entre uma coleção baseada na IList<T> interface genérica e uma coleção baseada na IDictionary<TKey,TValue> interface genérica. Tal como as coleções baseadas na IList<T> interface genérica, KeyedCollection<TKey,TItem> existe uma lista indexada de itens. Tal como as coleções baseadas na IDictionary<TKey,TValue> interface genérica, KeyedCollection<TKey,TItem> tem uma chave associada a cada elemento.
Ao contrário dos dicionários, um elemento de KeyedCollection<TKey,TItem> não é um par chave/valor; em vez disso, o elemento inteiro é o valor e a chave está embutida no valor. Por exemplo, um elemento de uma coleção derivado de KeyedCollection\<String,String> (KeyedCollection(Of String, String) em Visual Basic) pode ser "John Doe Jr.", onde o valor é "John Doe Jr." e a chave é "Doe"; ou uma coleção de registos de funcionários contendo chaves inteiras pode ser derivada de KeyedCollection\<int,Employee>. O método abstrato GetKeyForItem extrai a chave do elemento.
Por defeito, inclui KeyedCollection<TKey,TItem> um dicionário de consulta que pode obter com a Dictionary propriedade. Quando um item é adicionado ao KeyedCollection<TKey,TItem>, a chave do item é extraída uma vez e guardada no dicionário de consulta para pesquisas mais rápidas. Este comportamento é ultrapassado especificando um limiar de criação de dicionário quando se cria o KeyedCollection<TKey,TItem>. O dicionário de consulta é criado na primeira vez que o número de elementos ultrapassa esse limiar. Se especificar -1 como limiar, o dicionário de consulta nunca é criado.
Note
Quando o dicionário de consulta interna é utilizado, contém referências a todos os itens da coleção se TItem for um tipo de referência, ou cópias de todos os itens da coleção se TItem for um tipo de valor. Assim, usar o dicionário de consulta pode não ser apropriado se TItem for um tipo de valor.
Pode aceder a um item pelo seu índice ou chave usando a Item[] propriedade. Pode adicionar itens sem uma chave, mas estes itens só podem ser acedidos por índice.
Construtores
| Name | Description |
|---|---|
| KeyedCollection<TKey,TItem>() |
Inicializa uma nova instância da KeyedCollection<TKey,TItem> classe que utiliza o comparador de igualdade padrão. |
| KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>, Int32) |
Inicializa uma nova instância da KeyedCollection<TKey,TItem> classe que utiliza o comparador de igualdade especificado e cria um dicionário de consulta quando o limiar especificado é ultrapassado. |
| KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>) |
Inicializa uma nova instância da KeyedCollection<TKey,TItem> classe que utiliza o comparador de igualdade especificado. |
Propriedades
| Name | Description |
|---|---|
| Comparer |
Obtém o comparador genérico de igualdade que é usado para determinar a igualdade de chaves na coleção. |
| Count |
Obtém o número de elementos realmente contidos no Collection<T>. (Herdado de Collection<T>) |
| Dictionary |
Obtém o dicionário de pesquisa do KeyedCollection<TKey,TItem>. |
| Item[Int32] |
Obtém ou define o elemento no índice especificado. (Herdado de Collection<T>) |
| Item[TKey] |
Obtém o elemento com a chave especificada. |
| Items |
Coloca uma IList<T> embalagem à volta do Collection<T>. (Herdado de Collection<T>) |
Métodos
| Name | Description |
|---|---|
| Add(T) |
Adiciona um objeto ao final do Collection<T>. (Herdado de Collection<T>) |
| ChangeItemKey(TItem, TKey) |
Altera a chave associada ao elemento especificado no dicionário de consulta. |
| Clear() |
Remove todos os elementos do Collection<T>. (Herdado de Collection<T>) |
| ClearItems() |
Remove todos os elementos do KeyedCollection<TKey,TItem>. |
| Contains(TKey) |
Determina se a coleção contém um elemento com a chave especificada. |
| CopyTo(T[], Int32) |
Copia a totalidade Collection<T> para uma unidimensional Arraycompatível , começando no índice especificado do array alvo. (Herdado de Collection<T>) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetEnumerator() |
Devolve um enumerador que itera através do Collection<T>. (Herdado de Collection<T>) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetKeyForItem(TItem) |
Quando implementado numa classe derivada, extrai a chave do elemento especificado. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IndexOf(T) |
Procura o objeto especificado e devolve o índice baseado em zero da primeira ocorrência dentro de todo Collection<T>o . (Herdado de Collection<T>) |
| Insert(Int32, T) |
Insere um elemento no Collection<T> índice especificado. (Herdado de Collection<T>) |
| InsertItem(Int32, T) |
Insere um elemento no Collection<T> índice especificado. (Herdado de Collection<T>) |
| InsertItem(Int32, TItem) |
Insere um elemento no KeyedCollection<TKey,TItem> índice especificado. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Remove(TKey) |
Remove o elemento com a chave especificada da KeyedCollection<TKey,TItem>. |
| RemoveAt(Int32) |
Remove o elemento no índice especificado do Collection<T>. (Herdado de Collection<T>) |
| RemoveItem(Int32) |
Remove o elemento no índice especificado do KeyedCollection<TKey,TItem>. |
| SetItem(Int32, T) |
Substitui o elemento no índice especificado. (Herdado de Collection<T>) |
| SetItem(Int32, TItem) |
Substitui o item no índice especificado pelo item especificado. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| TryGetValue(TKey, TItem) |
Tenta obter um item da coleção usando a chave especificada. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copia os elementos do ICollection para um Array, começando num índice particular Array . (Herdado de Collection<T>) |
| ICollection.IsSynchronized |
Recebe um valor que indica se o acesso ao ICollection é sincronizado (thread safe). (Herdado de Collection<T>) |
| ICollection.SyncRoot |
Obtém um objeto que pode ser usado para sincronizar o acesso ao ICollection. (Herdado de Collection<T>) |
| ICollection<T>.IsReadOnly |
Recebe um valor que indica se o ICollection<T> é apenas de leitura. (Herdado de Collection<T>) |
| IEnumerable.GetEnumerator() |
Devolve um enumerador que itera numa coleção. (Herdado de Collection<T>) |
| IList.Add(Object) |
Adiciona um item ao IList. (Herdado de Collection<T>) |
| IList.Contains(Object) |
Determina se o IList contém um valor específico. (Herdado de Collection<T>) |
| IList.IndexOf(Object) |
Determina o índice de um item específico no IList. (Herdado de Collection<T>) |
| IList.Insert(Int32, Object) |
Insere um item no IList índice especificado. (Herdado de Collection<T>) |
| IList.IsFixedSize |
Obtém um valor que indica se o IList tem um tamanho fixo. (Herdado de Collection<T>) |
| IList.IsReadOnly |
Recebe um valor que indica se o IList é apenas de leitura. (Herdado de Collection<T>) |
| IList.Item[Int32] |
Obtém ou define o elemento no índice especificado. (Herdado de Collection<T>) |
| IList.Remove(Object) |
Remove a primeira ocorrência de um objeto específico do IList. (Herdado de Collection<T>) |
Métodos da Extensão
| Name | Description |
|---|---|
| Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Aplica uma função acumuladora sobre uma sequência. O valor semente especificado é usado como valor inicial do acumulador, e a função especificada é usada para selecionar o valor do resultado. |
| Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Aplica uma função acumuladora sobre uma sequência. O valor semente especificado é usado como valor inicial do acumulador. |
| Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Aplica uma função acumuladora sobre uma sequência. |
| All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Determina se todos os elementos de uma sequência satisfazem uma condição. |
| Ancestors<T>(IEnumerable<T>, XName) |
Devolve uma coleção filtrada de elementos que contém os antepassados de cada nó na coleção fonte. Apenas os elementos que têm correspondência XName são incluídos na coleção. |
| Ancestors<T>(IEnumerable<T>) |
Devolve uma coleção de elementos que contém os antepassados de cada nó na coleção de código-fonte. |
| Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Determina se algum elemento de uma sequência satisfaz uma condição. |
| Any<TSource>(IEnumerable<TSource>) |
Determina se uma sequência contém algum elemento. |
| Append<TSource>(IEnumerable<TSource>, TSource) |
Acrescenta um valor ao final da sequência. |
| AsEnumerable<TSource>(IEnumerable<TSource>) |
Retorna a entrada digitada como IEnumerable<T>. |
| AsParallel(IEnumerable) |
Permite a paralelização de uma consulta. |
| AsParallel<TSource>(IEnumerable<TSource>) |
Permite a paralelização de uma consulta. |
| AsQueryable(IEnumerable) |
Converte um IEnumerable para um IQueryable. |
| AsQueryable<TElement>(IEnumerable<TElement>) |
Converte um genérico IEnumerable<T> num genérico IQueryable<T>. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcula a média de uma sequência de Decimal valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcula a média de uma sequência de Double valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcula a média de uma sequência de Int32 valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcula a média de uma sequência de Int64 valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcula a média de uma sequência de valores anuláveis Decimal que são obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Calcula a média de uma sequência de valores anuláveis Double que são obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Calcula a média de uma sequência de valores anuláveis Int32 que são obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Calcula a média de uma sequência de valores anuláveis Int64 que são obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Calcula a média de uma sequência de valores anuláveis Single que são obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Calcula a média de uma sequência de Single valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Cast<TResult>(IEnumerable) |
Conjura os elementos de an IEnumerable para o tipo especificado. |
| Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Concatena duas sequências. |
| Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
Determina se uma sequência contém um elemento especificado usando um .IEqualityComparer<T> |
| Contains<TSource>(IEnumerable<TSource>, TSource) |
Determina se uma sequência contém um elemento especificado usando o comparador de igualdade padrão. |
| CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Copia DataRow objetos para o especificado DataTable, dado um objeto de entrada IEnumerable<T> onde o parâmetro |
| CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Copia DataRow objetos para o especificado DataTable, dado um objeto de entrada IEnumerable<T> onde o parâmetro |
| CopyToDataTable<T>(IEnumerable<T>) |
Devolve a DataTable que contém cópias dos DataRow objetos, dado um objeto de entrada IEnumerable<T> onde o parâmetro |
| Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve um número que representa quantos elementos na sequência especificada satisfazem uma condição. |
| Count<TSource>(IEnumerable<TSource>) |
Devolve o número de elementos numa sequência. |
| DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Devolve os elementos da sequência especificada ou o valor especificado numa coleção singleton se a sequência estiver vazia. |
| DefaultIfEmpty<TSource>(IEnumerable<TSource>) |
Devolve os elementos da sequência especificada ou o valor padrão do parâmetro de tipo numa coleção singleton se a sequência estiver vazia. |
| DescendantNodes<T>(IEnumerable<T>) |
Devolve uma coleção dos nós descendentes de cada documento e elemento da coleção de origem. |
| Descendants<T>(IEnumerable<T>, XName) |
Devolve uma coleção filtrada de elementos que contém os elementos descendentes de cada elemento e documento da coleção de origem. Apenas os elementos que têm correspondência XName são incluídos na coleção. |
| Descendants<T>(IEnumerable<T>) |
Devolve uma coleção de elementos que contém os elementos descendentes de cada elemento e documento da coleção fonte. |
| Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Devolve elementos distintos de uma sequência usando um especificado IEqualityComparer<T> para comparar valores. |
| Distinct<TSource>(IEnumerable<TSource>) |
Devolve elementos distintos de uma sequência usando o comparador de igualdade padrão para comparar valores. |
| ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Devolve o elemento num índice especificado numa sequência. |
| ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
Devolve o elemento num índice especificado numa sequência ou um valor padrão se o índice estiver fora do intervalo. |
| Elements<T>(IEnumerable<T>, XName) |
Devolve uma coleção filtrada dos elementos filhos de cada elemento e documento da coleção de origem. Apenas os elementos que têm correspondência XName são incluídos na coleção. |
| Elements<T>(IEnumerable<T>) |
Devolve uma coleção dos elementos filhos de cada elemento e documento da coleção de origem. |
| Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produz a diferença de conjuntos de duas sequências usando o especificado IEqualityComparer<T> para comparar valores. |
| Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produz a diferença de conjuntos de duas sequências usando o comparador de igualdade por defeito para comparar valores. |
| First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve o primeiro elemento numa sequência que satisfaz uma condição especificada. |
| First<TSource>(IEnumerable<TSource>) |
Devolve o primeiro elemento de uma sequência. |
| FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve o primeiro elemento da sequência que satisfaz uma condição ou um valor padrão se tal elemento não for encontrado. |
| FirstOrDefault<TSource>(IEnumerable<TSource>) |
Devolve o primeiro elemento de uma sequência, ou um valor padrão se a sequência não contiver elementos. |
| GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de teclas especificada e cria um valor de resultado a partir de cada grupo e da sua chave. Os valores-chave são comparados usando um comparador especificado, e os elementos de cada grupo são projetados usando uma função especificada. |
| GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de teclas especificada e cria um valor de resultado a partir de cada grupo e da sua chave. Os elementos de cada grupo são projetados usando uma função especificada. |
| GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de tecla. As chaves são comparadas usando um comparador e os elementos de cada grupo são projetados usando uma função especificada. |
| GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de teclas especificada e projeta os elementos para cada grupo usando uma função especificada. |
| GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de teclas especificada e cria um valor de resultado a partir de cada grupo e da sua chave. As chaves são comparadas usando um comparador especificado. |
| GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de teclas especificada e cria um valor de resultado a partir de cada grupo e da sua chave. |
| GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de teclas especificada e compara as chaves usando um comparador especificado. |
| GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Agrupa os elementos de uma sequência de acordo com uma função seletora de teclas especificada. |
| GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>) |
Correlaciona os elementos de duas sequências com base na igualdade de chave e agrupa os resultados. Um especificado IEqualityComparer<T> é usado para comparar tonalidades. |
| GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>) |
Correlaciona os elementos de duas sequências com base na igualdade das chaves e agrupa os resultados. O comparador de igualdade por defeito é usado para comparar chaves. |
| InDocumentOrder<T>(IEnumerable<T>) |
Devolve uma coleção de nós que contém todos os nós da coleção de código-fonte, ordenados pela ordem dos documentos. |
| Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produz a interseção conjunta de duas sequências usando o especificado IEqualityComparer<T> para comparar valores. |
| Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produz a interseção conjunta de duas sequências usando o comparador de igualdade padrão para comparar valores. |
| Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Correlaciona os elementos de duas sequências com base nas chaves correspondentes. Um especificado IEqualityComparer<T> é usado para comparar tonalidades. |
| Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Correlaciona os elementos de duas sequências com base nas chaves correspondentes. O comparador de igualdade por defeito é usado para comparar chaves. |
| Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve o último elemento de uma sequência que satisfaz uma condição especificada. |
| Last<TSource>(IEnumerable<TSource>) |
Devolve o último elemento de uma sequência. |
| LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve o último elemento de uma sequência que satisfaz uma condição ou um valor padrão se tal elemento não for encontrado. |
| LastOrDefault<TSource>(IEnumerable<TSource>) |
Devolve o último elemento de uma sequência, ou um valor padrão se a sequência não contiver elementos. |
| LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve e Int64 que representa quantos elementos numa sequência satisfazem uma condição. |
| LongCount<TSource>(IEnumerable<TSource>) |
Retorna e Int64 que representa o número total de elementos numa sequência. |
| Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Invoca uma função de transformação em cada elemento de uma sequência genérica e devolve o valor máximo resultante. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo Decimal . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo Double . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo Int32 . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo Int64 . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo anulável Decimal . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo anulável Double . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo anulável Int32 . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo anulável Int64 . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo anulável Single . |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor máximo Single . |
| Max<TSource>(IEnumerable<TSource>) |
Devolve o valor máximo numa sequência genérica. |
| Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Invoca uma função de transformação em cada elemento de uma sequência genérica e devolve o valor mínimo resultante. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo Decimal . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo Double . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo Int32 . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo Int64 . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo anulável Decimal . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo anulável Double . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo anulável Int32 . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo anulável Int64 . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo anulável Single . |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Invoca uma função de transformação em cada elemento de uma sequência e devolve o valor mínimo Single . |
| Min<TSource>(IEnumerable<TSource>) |
Devolve o valor mínimo numa sequência genérica. |
| Nodes<T>(IEnumerable<T>) |
Devolve uma coleção dos nós filhos de cada documento e elemento da coleção de código-fonte. |
| OfType<TResult>(IEnumerable) |
Filtra os elementos de um IEnumerable com base num tipo especificado. |
| OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Ordena os elementos de uma sequência por ordem crescente usando um comparador especificado. |
| OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Ordena os elementos de uma sequência por ordem crescente de acordo com uma chave. |
| OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Ordena os elementos de uma sequência por ordem decrescente usando um comparador especificado. |
| OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Ordena os elementos de uma sequência por ordem decrescente de acordo com uma chave. |
| Prepend<TSource>(IEnumerable<TSource>, TSource) |
Acrescenta um valor ao início da sequência. |
| Remove<T>(IEnumerable<T>) |
Remove todos os nós da coleção de origem do seu nó pai. |
| Reverse<TSource>(IEnumerable<TSource>) |
Inverte a ordem dos elementos numa sequência. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Projeta cada elemento de uma sequência numa nova forma incorporando o índice do elemento. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Projeta cada elemento de uma sequência numa nova forma. |
| SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Projeta cada elemento de uma sequência para um IEnumerable<T>, achata as sequências resultantes numa sequência e invoca uma função seletora de resultados em cada elemento nelas. |
| SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Projeta cada elemento de uma sequência para um IEnumerable<T>, achata as sequências resultantes numa sequência e invoca uma função seletora de resultados em cada elemento nelas. O índice de cada elemento fonte é usado na forma intermédia projetada desse elemento. |
| SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
Projeta cada elemento de uma sequência para um IEnumerable<T> e achata as sequências resultantes numa sequência. |
| SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
Projeta cada elemento de uma sequência para um IEnumerable<T>, e achata as sequências resultantes numa só sequência. O índice de cada elemento fonte é usado na forma projetada desse elemento. |
| SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Determina se duas sequências são iguais comparando os seus elementos usando um especificado IEqualityComparer<T>. |
| SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Determina se duas sequências são iguais comparando os elementos usando o comparador de igualdade padrão para o seu tipo. |
| Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve o único elemento de uma sequência que satisfaz uma condição especificada, e lança uma exceção se existirem mais do que um desses elementos. |
| Single<TSource>(IEnumerable<TSource>) |
Devolve o único elemento de uma sequência e lança uma exceção se não houver exatamente um elemento na sequência. |
| SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve o único elemento de uma sequência que satisfaz uma condição especificada ou um valor padrão se tal elemento não existir; este método lança uma exceção se mais do que um elemento satisfizerem a condição. |
| SingleOrDefault<TSource>(IEnumerable<TSource>) |
Devolve o único elemento de uma sequência, ou um valor padrão se a sequência estiver vazia; este método lança uma exceção se houver mais do que um elemento na sequência. |
| Skip<TSource>(IEnumerable<TSource>, Int32) |
Ignora um número especificado de elementos numa sequência e depois devolve os elementos restantes. |
| SkipLast<TSource>(IEnumerable<TSource>, Int32) |
Devolve uma nova coleção enumerável que contém os elementos de |
| SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Ignora elementos numa sequência desde que uma condição especificada seja verdadeira e depois devolve os elementos restantes. |
| SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Ignora elementos numa sequência desde que uma condição especificada seja verdadeira e depois devolve os elementos restantes. O índice do elemento é usado na lógica da função de predicado. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcula a soma da sequência de Decimal valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcula a soma da sequência de Double valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcula a soma da sequência de Int32 valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcula a soma da sequência de Int64 valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcula a soma da sequência de valores nulos Decimal que são obtidos ao invocar uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Calcula a soma da sequência de valores nulos Double que são obtidos ao invocar uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Calcula a soma da sequência de valores nulos Int32 que são obtidos ao invocar uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Calcula a soma da sequência de valores nulos Int64 que são obtidos ao invocar uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Calcula a soma da sequência de valores nulos Single que são obtidos ao invocar uma função de transformação em cada elemento da sequência de entrada. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Calcula a soma da sequência de Single valores obtidos invocando uma função de transformação em cada elemento da sequência de entrada. |
| Take<TSource>(IEnumerable<TSource>, Int32) |
Devolve um número especificado de elementos contíguos do início de uma sequência. |
| TakeLast<TSource>(IEnumerable<TSource>, Int32) |
Devolve uma nova coleção enumerável que contém os últimos |
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Devolve elementos de uma sequência desde que uma condição especificada seja verdadeira. |
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Devolve elementos de uma sequência desde que uma condição especificada seja verdadeira. O índice do elemento é usado na lógica da função de predicado. |
| ToArray<TSource>(IEnumerable<TSource>) |
Cria um array a partir de um IEnumerable<T>. |
| ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Cria a Dictionary<TKey,TValue> partir de uma IEnumerable<T> função seletora de teclas especificada, um comparador e uma função seletora de elementos. |
| ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Cria um Dictionary<TKey,TValue> a partir de um IEnumerable<T> de acordo com as funções seletoras de teclas e seletores de elementos especificadas. |
| ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Cria um Dictionary<TKey,TValue> a partir de um IEnumerable<T> de acordo com uma função seletora de teclas especificada e um comparador de chaves. |
| ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Cria um Dictionary<TKey,TValue> a partir de um IEnumerable<T> de acordo com uma função seletor de teclas especificada. |
| ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Cria um HashSet<T> a partir de um IEnumerable<T> usando o |
| ToHashSet<TSource>(IEnumerable<TSource>) |
Cria um HashSet<T> a partir de um IEnumerable<T>. |
| ToImmutableArray<TSource>(IEnumerable<TSource>) |
Cria um array imutável a partir da coleção especificada. |
| ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>) |
Enumera e transforma uma sequência, e produz um dicionário imutável do seu conteúdo usando os comparadores de chave e valor especificados. |
| ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>) |
Enumera e transforma uma sequência, e produz um dicionário imutável do seu conteúdo usando o comparador de chaves especificado. |
| ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Enumera e transforma uma sequência, e produz um dicionário imutável do seu conteúdo. |
| ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Constrói um dicionário imutável baseado numa transformação de uma sequência. |
| ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Constrói um dicionário imutável a partir de uma coleção existente de elementos, aplicando uma função de transformação às chaves fonte. |
| ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Enumera uma sequência, produz um conjunto de hash imutável do seu conteúdo e utiliza o comparador de igualdade especificado para o tipo de conjunto. |
| ToImmutableHashSet<TSource>(IEnumerable<TSource>) |
Enumera uma sequência e produz um conjunto de hash imutável do seu conteúdo. |
| ToImmutableList<TSource>(IEnumerable<TSource>) |
Enumera uma sequência e produz uma lista imutável do seu conteúdo. |
| ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>) |
Enumera e transforma uma sequência, e produz um dicionário ordenado imutável do seu conteúdo usando os comparadores de chave e valor especificados. |
| ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>) |
Enumera e transforma uma sequência, e produz um dicionário ordenado imutável do seu conteúdo usando o comparador de chaves especificado. |
| ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Enumera e transforma uma sequência, produzindo um dicionário ordenado imutável do seu conteúdo. |
| ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Enumera uma sequência, produz um conjunto ordenado imutável do seu conteúdo e utiliza o comparador especificado. |
| ToImmutableSortedSet<TSource>(IEnumerable<TSource>) |
Enumera uma sequência e produz um conjunto ordenado imutável do seu conteúdo. |
| ToList<TSource>(IEnumerable<TSource>) |
Cria um List<T> a partir de um IEnumerable<T>. |
| ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Cria a Lookup<TKey,TElement> partir de uma IEnumerable<T> função seletora de teclas especificada, um comparador e uma função seletor de elementos. |
| ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Cria um Lookup<TKey,TElement> a partir de um IEnumerable<T> de acordo com as funções seletoras de teclas e seletores de elementos especificadas. |
| ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Cria um Lookup<TKey,TElement> a partir de um IEnumerable<T> de acordo com uma função seletora de teclas especificada e um comparador de chaves. |
| ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Cria um Lookup<TKey,TElement> a partir de um IEnumerable<T> de acordo com uma função seletor de teclas especificada. |
| Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produz a união de conjuntos de duas sequências usando um especificado IEqualityComparer<T>. |
| Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produz a união conjunta de duas sequências usando o comparador de igualdade padrão. |
| Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Filtra uma sequência de valores com base num predicado. |
| Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Filtra uma sequência de valores com base num predicado. O índice de cada elemento é usado na lógica da função de predicado. |
| Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>) |
Aplica uma função especificada aos elementos correspondentes de duas sequências, produzindo uma sequência dos resultados. |