KeyedCollection<TKey,TItem> Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce la classe base astratta per una raccolta le cui chiavi sono incorporate nei valori.
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)
Parametri di tipo
- TKey
Tipo di chiavi nella raccolta.
- TItem
Tipo di elementi nella raccolta.
- Ereditarietà
- Derivato
- Attributi
Esempio
Questa sezione contiene due esempi di codice. Il primo esempio mostra il codice minimo necessario per derivare da KeyedCollection<TKey,TItem>e illustra molti dei metodi ereditati. Il secondo esempio mostra come eseguire l'override dei metodi protetti di KeyedCollection<TKey,TItem> per fornire un comportamento personalizzato.
Esempio 1
Questo esempio di codice mostra il codice minimo necessario per derivare una classe di raccolta da KeyedCollection<TKey,TItem>: eseguire l'override del GetKeyForItem metodo e fornire un costruttore pubblico che delega a un costruttore della classe base. L'esempio di codice illustra anche molte delle proprietà e dei metodi ereditati dalle KeyedCollection<TKey,TItem> classi e Collection<T> .
La SimpleOrder classe è un elenco di richieste molto semplice che contiene OrderItem oggetti, ognuno dei quali rappresenta un elemento di riga nell'ordine. La chiave di OrderItem è non modificabile, una considerazione importante per le classi che derivano da KeyedCollection<TKey,TItem>. Per un esempio di codice che usa chiavi modificabili, vedere 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
Esempio 2
Nell'esempio di codice seguente viene illustrato come eseguire l'override dei metodi , , e protetti InsertItemper fornire un comportamento personalizzato per i Addmetodi , Removee Clear e per impostare la proprietà predefinita Item[] (l'indicizzatore in CSetItem#). ClearItemsRemoveItem Il comportamento personalizzato fornito in questo esempio è un evento di notifica denominato Changed, che viene generato alla fine di ognuno dei metodi sottoposti a override.
Nell'esempio di codice viene creata la SimpleOrder classe , che deriva da KeyedCollection<TKey,TItem> e rappresenta un modulo di ordine semplice. Il modulo dell'ordine contiene OrderItem oggetti che rappresentano gli elementi ordinati. L'esempio di codice crea anche una SimpleOrderChangedEventArgs classe per contenere le informazioni sull'evento e un'enumerazione per identificare il tipo di modifica.
Nell'esempio di codice viene illustrato il comportamento personalizzato chiamando le proprietà e i metodi della classe derivata, nel Main metodo della Demo classe .
Questo esempio di codice usa oggetti con chiavi non modificabili. Per un esempio di codice che usa chiavi modificabili, vedere 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.
Commenti
La KeyedCollection<TKey,TItem> classe fornisce sia il recupero indicizzato O(1) che il recupero con chiave che si avvicina a O(1). È un tipo astratto o più accuratamente un set infinito di tipi astratti, perché ognuno dei relativi tipi generici costruiti è una classe base astratta. Per usare KeyedCollection<TKey,TItem>, derivare il tipo di raccolta dal tipo costruito appropriato.
La KeyedCollection<TKey,TItem> classe è un ibrido tra una raccolta basata sull'interfaccia IList<T> generica e una raccolta basata sull'interfaccia IDictionary<TKey,TValue> generica. Analogamente alle raccolte basate sull'interfaccia IList<T> generica, KeyedCollection<TKey,TItem> è un elenco indicizzato di elementi. Analogamente alle raccolte basate sull'interfaccia IDictionary<TKey,TValue> generica, KeyedCollection<TKey,TItem> ha una chiave associata a ogni elemento.
A differenza dei dizionari, un elemento di KeyedCollection<TKey,TItem> non è una coppia chiave/valore. L'intero elemento è invece il valore e la chiave viene incorporata all'interno del valore. Ad esempio, un elemento di una raccolta derivata da KeyedCollection\<String,String> (KeyedCollection(Of String, String) in Visual Basic) potrebbe essere "John Doe Jr". dove il valore è "John Doe Jr". e la chiave è "Doe"; oppure una raccolta di record dipendenti contenenti chiavi integer può essere derivata da KeyedCollection\<int,Employee>. Il metodo astratto GetKeyForItem estrae la chiave dall'elemento .
Per impostazione predefinita, KeyedCollection<TKey,TItem> include un dizionario di ricerca che è possibile ottenere con la Dictionary proprietà . Quando un elemento viene aggiunto a KeyedCollection<TKey,TItem>, la chiave dell'elemento viene estratta una volta e salvata nel dizionario di ricerca per ricerche più veloci. Questo comportamento viene sottoposto a override specificando una soglia di creazione del dizionario quando si crea .KeyedCollection<TKey,TItem> Il dizionario di ricerca viene creato la prima volta che il numero di elementi supera tale soglia. Se si specifica -1 come soglia, il dizionario di ricerca non viene mai creato.
Nota
Quando viene utilizzato il dizionario di ricerca interno, contiene riferimenti a tutti gli elementi dell'insieme se TItem è un tipo riferimento o copie di tutti gli elementi dell'insieme se TItem è un tipo valore. Pertanto, l'uso del dizionario di ricerca potrebbe non essere appropriato se TItem è un tipo di valore.
È possibile accedere a un elemento tramite l'indice o la chiave usando la Item[] proprietà . È possibile aggiungere elementi senza una chiave, ma questi elementi possono essere accessibili solo in base all'indice.
Costruttori
| Nome | Descrizione |
|---|---|
| KeyedCollection<TKey,TItem>() |
Inizializza una nuova istanza della KeyedCollection<TKey,TItem> classe che utilizza l'operatore di confronto di uguaglianza predefinito. |
| KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>, Int32) |
Inizializza una nuova istanza della KeyedCollection<TKey,TItem> classe che utilizza l'operatore di confronto di uguaglianza specificato e crea un dizionario di ricerca quando viene superata la soglia specificata. |
| KeyedCollection<TKey,TItem>(IEqualityComparer<TKey>) |
Inizializza una nuova istanza della KeyedCollection<TKey,TItem> classe che utilizza l'operatore di confronto di uguaglianza specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| Comparer |
Ottiene l'operatore di confronto di uguaglianza generico utilizzato per determinare l'uguaglianza delle chiavi nella raccolta. |
| Count |
Ottiene il numero di elementi effettivamente contenuti in Collection<T>. (Ereditato da Collection<T>) |
| Dictionary |
Ottiene il dizionario di ricerca dell'oggetto KeyedCollection<TKey,TItem>. |
| Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. (Ereditato da Collection<T>) |
| Item[TKey] |
Ottiene l'elemento con la chiave specificata. |
| Items |
Ottiene un IList<T> wrapper intorno a Collection<T>. (Ereditato da Collection<T>) |
Metodi
| Nome | Descrizione |
|---|---|
| Add(T) |
Aggiunge un oggetto alla fine dell'oggetto Collection<T>. (Ereditato da Collection<T>) |
| ChangeItemKey(TItem, TKey) |
Modifica la chiave associata all'elemento specificato nel dizionario di ricerca. |
| Clear() |
Rimuove tutti gli elementi da Collection<T>. (Ereditato da Collection<T>) |
| ClearItems() |
Rimuove tutti gli elementi da KeyedCollection<TKey,TItem>. |
| Contains(TKey) |
Determina se la raccolta contiene un elemento con la chiave specificata. |
| CopyTo(T[], Int32) |
Copia l'intero Collection<T> oggetto in un oggetto unidimensionale Arraycompatibile, a partire dall'indice specificato della matrice di destinazione. (Ereditato da Collection<T>) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetEnumerator() |
Restituisce un enumeratore che scorre l'oggetto Collection<T>. (Ereditato da Collection<T>) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetKeyForItem(TItem) |
Se implementato in una classe derivata, estrae la chiave dall'elemento specificato. |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IndexOf(T) |
Cerca l'oggetto specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero Collection<T>oggetto . (Ereditato da Collection<T>) |
| Insert(Int32, T) |
Inserisce un elemento nell'oggetto Collection<T> in corrispondenza dell'indice specificato. (Ereditato da Collection<T>) |
| InsertItem(Int32, T) |
Inserisce un elemento nell'oggetto Collection<T> in corrispondenza dell'indice specificato. (Ereditato da Collection<T>) |
| InsertItem(Int32, TItem) |
Inserisce un elemento nell'oggetto KeyedCollection<TKey,TItem> in corrispondenza dell'indice specificato. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| Remove(TKey) |
Rimuove l'elemento con la chiave specificata da KeyedCollection<TKey,TItem>. |
| RemoveAt(Int32) |
Rimuove l'elemento in corrispondenza dell'indice specificato dell'oggetto Collection<T>. (Ereditato da Collection<T>) |
| RemoveItem(Int32) |
Rimuove l'elemento in corrispondenza dell'indice specificato dell'oggetto KeyedCollection<TKey,TItem>. |
| SetItem(Int32, T) |
Sostituisce l'elemento in corrispondenza dell'indice specificato. (Ereditato da Collection<T>) |
| SetItem(Int32, TItem) |
Sostituisce l'elemento in corrispondenza dell'indice specificato con l'elemento specificato. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| TryGetValue(TKey, TItem) |
Prova a ottenere un elemento dalla raccolta usando la chiave specificata. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copia gli elementi di in ICollection un Arrayoggetto , a partire da un indice specifico Array . (Ereditato da Collection<T>) |
| ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso ICollection a è sincronizzato (thread-safe). (Ereditato da Collection<T>) |
| ICollection.SyncRoot |
Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso all'oggetto ICollection. (Ereditato da Collection<T>) |
| ICollection<T>.IsReadOnly |
Ottiene un valore che indica se l'oggetto ICollection<T> è di sola lettura. (Ereditato da Collection<T>) |
| IEnumerable.GetEnumerator() |
Restituisce un enumeratore che scorre un insieme. (Ereditato da Collection<T>) |
| IList.Add(Object) |
Aggiunge un elemento all'oggetto IList. (Ereditato da Collection<T>) |
| IList.Contains(Object) |
Determina se contiene IList un valore specifico. (Ereditato da Collection<T>) |
| IList.IndexOf(Object) |
Determina l'indice di un elemento specifico nell'oggetto IList. (Ereditato da Collection<T>) |
| IList.Insert(Int32, Object) |
Inserisce un elemento nell'oggetto IList in corrispondenza dell'indice specificato. (Ereditato da Collection<T>) |
| IList.IsFixedSize |
Ottiene un valore che indica se ha IList una dimensione fissa. (Ereditato da Collection<T>) |
| IList.IsReadOnly |
Ottiene un valore che indica se l'oggetto IList è di sola lettura. (Ereditato da Collection<T>) |
| IList.Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. (Ereditato da Collection<T>) |
| IList.Remove(Object) |
Rimuove la prima occorrenza di un oggetto specifico da IList. (Ereditato da Collection<T>) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Applica una funzione di enumeratore su una sequenza. Il valore di inizializzazione specificato viene utilizzato come valore dell'accumulatore iniziale e la funzione specificata viene usata per selezionare il valore del risultato. |
| Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Applica una funzione di enumeratore su una sequenza. Il valore di inizializzazione specificato viene utilizzato come valore dell'caricabatterie iniziale. |
| Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Applica una funzione di enumeratore su una sequenza. |
| AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Applica una funzione enumerata su una sequenza, raggruppando i risultati in base alla chiave. |
| AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>) |
Applica una funzione enumerata su una sequenza, raggruppando i risultati in base alla chiave. |
| All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Determina se tutti gli elementi di una sequenza soddisfano una condizione. |
| Ancestors<T>(IEnumerable<T>, XName) |
Restituisce una raccolta filtrata di elementi che contiene i predecessori di ogni nodo nella raccolta di origine. Nella raccolta sono inclusi solo gli elementi con un XName corrispondente. |
| Ancestors<T>(IEnumerable<T>) |
Restituisce una raccolta di elementi che contiene i predecessori di ogni nodo nella raccolta di origine. |
| Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Determina se un elemento di una sequenza soddisfa una condizione. |
| Any<TSource>(IEnumerable<TSource>) |
Determina se una sequenza contiene elementi. |
| Append<TSource>(IEnumerable<TSource>, TSource) |
Aggiunge un valore alla fine della sequenza. |
| AsEnumerable<TSource>(IEnumerable<TSource>) |
Restituisce l'input tipizzato come oggetto IEnumerable<T>. |
| AsParallel(IEnumerable) |
Abilita la parallelizzazione di una query. |
| AsParallel<TSource>(IEnumerable<TSource>) |
Abilita la parallelizzazione di una query. |
| AsQueryable(IEnumerable) |
Converte un IEnumerable in un IQueryable. |
| AsQueryable<TElement>(IEnumerable<TElement>) |
Converte un IEnumerable<T> generico in un IQueryable<T>generico. |
| AsReadOnly<T>(IList<T>) |
Restituisce un wrapper di sola ReadOnlyCollection<T> lettura per l'elenco specificato. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcola la media di una sequenza di valori Decimal ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcola la media di una sequenza di valori Double ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcola la media di una sequenza di valori Int32 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcola la media di una sequenza di valori Int64 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcola la media di una sequenza di valori nullable Decimal ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Calcola la media di una sequenza di valori nullable Double ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Calcola la media di una sequenza di valori nullable Int32 ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Calcola la media di una sequenza di valori nullable Int64 ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Calcola la media di una sequenza di valori nullable Single ottenuti richiamando una funzione di trasformazione su ogni elemento della sequenza di input. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Calcola la media di una sequenza di valori Single ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un IEnumerable al tipo specificato. |
| Chunk<TSource>(IEnumerable<TSource>, Int32) |
Suddivide gli elementi di una sequenza in blocchi di dimensioni al massimo |
| Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Concatena due sequenze. |
| Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
Determina se una sequenza contiene un elemento specificato utilizzando un IEqualityComparer<T>specificato. |
| Contains<TSource>(IEnumerable<TSource>, TSource) |
Determina se una sequenza contiene un elemento specificato utilizzando l'operatore di confronto di uguaglianza predefinito. |
| CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Copia DataRow oggetti nel DataTablespecificato, dato un oggetto IEnumerable<T> di input in cui il parametro generico |
| CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Copia DataRow oggetti nel DataTablespecificato, dato un oggetto IEnumerable<T> di input in cui il parametro generico |
| CopyToDataTable<T>(IEnumerable<T>) |
Restituisce un DataTable che contiene copie degli oggetti DataRow, dato un oggetto IEnumerable<T> di input in cui il parametro generico |
| Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce un numero che rappresenta il numero di elementi nella sequenza specificata che soddisfano una condizione. |
| Count<TSource>(IEnumerable<TSource>) |
Restituisce il numero di elementi in una sequenza. |
| CountBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Restituisce il numero di elementi nella sequenza di origine raggruppati per chiave. |
| DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
Restituisce gli elementi della sequenza specificata o il valore specificato in una raccolta singleton se la sequenza è vuota. |
| DefaultIfEmpty<TSource>(IEnumerable<TSource>) |
Restituisce gli elementi della sequenza specificata o il valore predefinito del parametro di tipo in un insieme singleton se la sequenza è vuota. |
| DescendantNodes<T>(IEnumerable<T>) |
Restituisce una raccolta dei nodi discendenti di ogni documento e elemento nella raccolta di origine. |
| Descendants<T>(IEnumerable<T>, XName) |
Restituisce una raccolta filtrata di elementi che contiene gli elementi discendenti di ogni elemento e documento nella raccolta di origine. Nella raccolta sono inclusi solo gli elementi con un XName corrispondente. |
| Descendants<T>(IEnumerable<T>) |
Restituisce una raccolta di elementi che contiene gli elementi discendenti di ogni elemento e documento nella raccolta di origine. |
| Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Restituisce elementi distinti da una sequenza utilizzando un IEqualityComparer<T> specificato per confrontare i valori. |
| Distinct<TSource>(IEnumerable<TSource>) |
Restituisce elementi distinti da una sequenza utilizzando l'operatore di confronto di uguaglianza predefinito per confrontare i valori. |
| DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Restituisce elementi distinti da una sequenza in base a una funzione del selettore di chiave specificata e utilizzando un operatore di confronto specificato per confrontare le chiavi. |
| DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Restituisce elementi distinti da una sequenza in base a una funzione del selettore di chiave specificata. |
| ElementAt<TSource>(IEnumerable<TSource>, Index) |
Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza. |
| ElementAt<TSource>(IEnumerable<TSource>, Int32) |
Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza. |
| ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index) |
Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza o un valore predefinito se l'indice non è compreso nell'intervallo. |
| ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
Restituisce l'elemento in corrispondenza di un indice specificato in una sequenza o un valore predefinito se l'indice non è compreso nell'intervallo. |
| Elements<T>(IEnumerable<T>, XName) |
Restituisce una raccolta filtrata degli elementi figlio di ogni elemento e documento nella raccolta di origine. Nella raccolta sono inclusi solo gli elementi con un XName corrispondente. |
| Elements<T>(IEnumerable<T>) |
Restituisce un insieme degli elementi figlio di ogni elemento e documento nella raccolta di origine. |
| Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produce la differenza di set di due sequenze usando il IEqualityComparer<T> specificato per confrontare i valori. |
| Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produce la differenza di set di due sequenze usando l'operatore di confronto di uguaglianza predefinito per confrontare i valori. |
| ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Produce la differenza di set di due sequenze in base a una funzione del selettore di chiave specificata. |
| ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Produce la differenza di set di due sequenze in base a una funzione del selettore di chiave specificata. |
| First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce il primo elemento di una sequenza che soddisfa una condizione specificata. |
| First<TSource>(IEnumerable<TSource>) |
Restituisce il primo elemento di una sequenza. |
| FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Restituisce il primo elemento della sequenza che soddisfa una condizione o un valore predefinito specificato se non viene trovato alcun elemento di questo tipo. |
| FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce il primo elemento della sequenza che soddisfa una condizione o un valore predefinito se non viene trovato alcun elemento di questo tipo. |
| FirstOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Restituisce il primo elemento di una sequenza o un valore predefinito specificato se la sequenza non contiene elementi. |
| FirstOrDefault<TSource>(IEnumerable<TSource>) |
Restituisce il primo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi. |
| GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave. I valori chiave vengono confrontati usando un operatore di confronto specificato e gli elementi di ogni gruppo vengono proiettati usando una funzione specificata. |
| GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave. Gli elementi di ogni gruppo vengono proiettati usando una funzione specificata. |
| GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave. Le chiavi vengono confrontate usando un operatore di confronto e gli elementi di ogni gruppo vengono proiettati usando una funzione specificata. |
| GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e proietta gli elementi per ogni gruppo usando una funzione specificata. |
| GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave. Le chiavi vengono confrontate usando un operatore di confronto specificato. |
| GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e crea un valore di risultato da ogni gruppo e dalla relativa chiave. |
| GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata e confronta le chiavi usando un operatore di confronto specificato. |
| GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Raggruppa gli elementi di una sequenza in base a una funzione del selettore di chiave specificata. |
| GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>) |
Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati. Viene usato un IEqualityComparer<T> specificato per confrontare le chiavi. |
| GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>) |
Correla gli elementi di due sequenze in base all'uguaglianza delle chiavi e raggruppa i risultati. L'operatore di confronto di uguaglianza predefinito viene usato per confrontare le chiavi. |
| Index<TSource>(IEnumerable<TSource>) |
Restituisce un enumerabile che incorpora l'indice dell'elemento in una tupla. |
| InDocumentOrder<T>(IEnumerable<T>) |
Restituisce una raccolta di nodi che contiene tutti i nodi della raccolta di origine, ordinati in base all'ordine dei documenti. |
| Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produce l'intersezione set di due sequenze utilizzando il IEqualityComparer<T> specificato per confrontare i valori. |
| Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produce l'intersezione set di due sequenze usando l'operatore di confronto di uguaglianza predefinito per confrontare i valori. |
| IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Produce l'intersezione set di due sequenze in base a una funzione del selettore di chiave specificata. |
| IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>) |
Produce l'intersezione set di due sequenze in base a una funzione del selettore di chiave specificata. |
| Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Correla gli elementi di due sequenze in base alle chiavi corrispondenti. Viene usato un IEqualityComparer<T> specificato per confrontare le chiavi. |
| Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Correla gli elementi di due sequenze in base alle chiavi corrispondenti. L'operatore di confronto di uguaglianza predefinito viene usato per confrontare le chiavi. |
| Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce l'ultimo elemento di una sequenza che soddisfa una condizione specificata. |
| Last<TSource>(IEnumerable<TSource>) |
Restituisce l'ultimo elemento di una sequenza. |
| LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Restituisce l'ultimo elemento di una sequenza che soddisfa una condizione o un valore predefinito specificato se non viene trovato alcun elemento di questo tipo. |
| LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce l'ultimo elemento di una sequenza che soddisfa una condizione o un valore predefinito se non viene trovato alcun elemento di questo tipo. |
| LastOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Restituisce l'ultimo elemento di una sequenza o un valore predefinito specificato se la sequenza non contiene elementi. |
| LastOrDefault<TSource>(IEnumerable<TSource>) |
Restituisce l'ultimo elemento di una sequenza o un valore predefinito se la sequenza non contiene elementi. |
| LeftJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Correla gli elementi di due sequenze in base alle chiavi corrispondenti. Viene usato un IEqualityComparer<T> specificato per confrontare le chiavi. |
| LeftJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Correla gli elementi di due sequenze in base alle chiavi corrispondenti. L'operatore di confronto di uguaglianza predefinito viene usato per confrontare le chiavi. |
| LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce un Int64 che rappresenta il numero di elementi in una sequenza che soddisfano una condizione. |
| LongCount<TSource>(IEnumerable<TSource>) |
Restituisce un Int64 che rappresenta il numero totale di elementi in una sequenza. |
| Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza generica e restituisce il valore massimo risultante. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Decimal. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Double. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int32. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int64. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Decimal. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Double. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int32. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int64. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Single. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Single. |
| Max<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Restituisce il valore massimo in una sequenza generica. |
| Max<TSource>(IEnumerable<TSource>) |
Restituisce il valore massimo in una sequenza generica. |
| MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificato. |
| MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave specificata. |
| Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Richiama una funzione di trasformazione per ogni elemento di una sequenza generica e restituisce il valore minimo risultante. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Decimal. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Double. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Int32. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Int64. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Decimal. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Double. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Int32. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Int64. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Richiama una funzione di trasformazione per ogni elemento di una sequenza e restituisce il valore minimo nullable Single. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore minimo Single. |
| Min<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Restituisce il valore minimo in una sequenza generica. |
| Min<TSource>(IEnumerable<TSource>) |
Restituisce il valore minimo in una sequenza generica. |
| MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Restituisce il valore minimo in una sequenza generica in base a una funzione del selettore di chiave e all'operatore di confronto dei tasti specificato. |
| MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Restituisce il valore minimo in una sequenza generica in base a una funzione del selettore di chiave specificata. |
| Nodes<T>(IEnumerable<T>) |
Restituisce una raccolta dei nodi figlio di ogni documento e elemento nella raccolta di origine. |
| OfType<TResult>(IEnumerable) |
Filtra gli elementi di un IEnumerable in base a un tipo specificato. |
| Order<T>(IEnumerable<T>, IComparer<T>) |
Ordina gli elementi di una sequenza in ordine crescente. |
| Order<T>(IEnumerable<T>) |
Ordina gli elementi di una sequenza in ordine crescente. |
| OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Ordina gli elementi di una sequenza in ordine crescente usando un operatore di confronto specificato. |
| OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Ordina gli elementi di una sequenza in ordine crescente in base a una chiave. |
| OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Ordina gli elementi di una sequenza in ordine decrescente usando un operatore di confronto specificato. |
| OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Ordina gli elementi di una sequenza in ordine decrescente in base a una chiave. |
| OrderDescending<T>(IEnumerable<T>, IComparer<T>) |
Ordina gli elementi di una sequenza in ordine decrescente. |
| OrderDescending<T>(IEnumerable<T>) |
Ordina gli elementi di una sequenza in ordine decrescente. |
| Prepend<TSource>(IEnumerable<TSource>, TSource) |
Aggiunge un valore all'inizio della sequenza. |
| Remove<T>(IEnumerable<T>) |
Rimuove ogni nodo nella raccolta di origine dal nodo padre. |
| Reverse<TSource>(IEnumerable<TSource>) |
Inverte l'ordine degli elementi in una sequenza. |
| RightJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
Correla gli elementi di due sequenze in base alle chiavi corrispondenti. Viene usato un IEqualityComparer<T> specificato per confrontare le chiavi. |
| RightJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
Correla gli elementi di due sequenze in base alle chiavi corrispondenti. L'operatore di confronto di uguaglianza predefinito viene usato per confrontare le chiavi. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
Proietta ogni elemento di una sequenza in un nuovo form incorporando l'indice dell'elemento. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Proietta ogni elemento di una sequenza in un nuovo form. |
| SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Proietta ogni elemento di una sequenza in un IEnumerable<T>, rende flat le sequenze risultanti in una sequenza e richiama una funzione del selettore di risultati in ogni elemento. |
| SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
Proietta ogni elemento di una sequenza in un IEnumerable<T>, rende flat le sequenze risultanti in una sequenza e richiama una funzione del selettore di risultati in ogni elemento. L'indice di ogni elemento di origine viene utilizzato nella forma intermedia proiettata di tale elemento. |
| SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
Proietta ogni elemento di una sequenza in un IEnumerable<T> e rende flat le sequenze risultanti in un'unica sequenza. |
| SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
Proietta ogni elemento di una sequenza in un IEnumerable<T>e rende flat le sequenze risultanti in una sola sequenza. L'indice di ogni elemento di origine viene utilizzato nella forma proiettata di tale elemento. |
| SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Determina se due sequenze sono uguali confrontando i relativi elementi utilizzando un IEqualityComparer<T>specificato. |
| SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Determina se due sequenze sono uguali confrontando gli elementi usando l'operatore di confronto di uguaglianza predefinito per il tipo. |
| Shuffle<TSource>(IEnumerable<TSource>) |
Riordina l'ordine degli elementi di una sequenza. |
| Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce l'unico elemento di una sequenza che soddisfa una condizione specificata e genera un'eccezione se esiste più di un elemento di questo tipo. |
| Single<TSource>(IEnumerable<TSource>) |
Restituisce l'unico elemento di una sequenza e genera un'eccezione se non è presente esattamente un elemento nella sequenza. |
| SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Restituisce l'unico elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito specificato se tale elemento non esiste; questo metodo genera un'eccezione se più di un elemento soddisfa la condizione. |
| SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce l'unico elemento di una sequenza che soddisfa una condizione specificata o un valore predefinito se tale elemento non esiste; questo metodo genera un'eccezione se più di un elemento soddisfa la condizione. |
| SingleOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Restituisce l'unico elemento di una sequenza o un valore predefinito specificato se la sequenza è vuota; questo metodo genera un'eccezione se nella sequenza sono presenti più elementi. |
| SingleOrDefault<TSource>(IEnumerable<TSource>) |
Restituisce l'unico elemento di una sequenza o un valore predefinito se la sequenza è vuota; questo metodo genera un'eccezione se nella sequenza sono presenti più elementi. |
| Skip<TSource>(IEnumerable<TSource>, Int32) |
Ignora un numero specificato di elementi in una sequenza e quindi restituisce gli elementi rimanenti. |
| SkipLast<TSource>(IEnumerable<TSource>, Int32) |
Restituisce una nuova raccolta enumerabile che contiene gli elementi di |
| SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Ignora gli elementi in una sequenza purché una condizione specificata sia true e quindi restituisca gli elementi rimanenti. |
| SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Ignora gli elementi in una sequenza purché una condizione specificata sia true e quindi restituisca gli elementi rimanenti. L'indice dell'elemento viene usato nella logica della funzione predicato. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Calcola la somma della sequenza di Decimal valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Calcola la somma della sequenza di Double valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Calcola la somma della sequenza di Int32 valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Calcola la somma della sequenza di Int64 valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Calcola la somma della sequenza di valori nullable Decimal ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Calcola la somma della sequenza di valori nullable Double ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Calcola la somma della sequenza di valori nullable Int32 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Calcola la somma della sequenza di valori nullable Int64 ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Calcola la somma della sequenza di valori nullable Single ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Calcola la somma della sequenza di Single valori ottenuti richiamando una funzione di trasformazione in ogni elemento della sequenza di input. |
| Take<TSource>(IEnumerable<TSource>, Int32) |
Restituisce un numero specificato di elementi contigui dall'inizio di una sequenza. |
| Take<TSource>(IEnumerable<TSource>, Range) |
Restituisce un intervallo specificato di elementi contigui da una sequenza. |
| TakeLast<TSource>(IEnumerable<TSource>, Int32) |
Restituisce una nuova raccolta enumerabile contenente gli ultimi |
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Restituisce elementi da una sequenza purché una condizione specificata sia true. |
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Restituisce elementi da una sequenza purché una condizione specificata sia true. L'indice dell'elemento viene usato nella logica della funzione predicato. |
| ToArray<TSource>(IEnumerable<TSource>) |
Crea una matrice da un IEnumerable<T>. |
| ToAsyncEnumerable<TSource>(IEnumerable<TSource>) |
Crea un nuovo IAsyncEnumerable<T> oggetto che scorre . |
| ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base a una funzione del selettore di chiave, a un operatore di confronto e a una funzione del selettore di elementi. |
| ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base ai selettori di chiave e alle funzioni del selettore di elementi specificati. |
| ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificati. |
| ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Crea un Dictionary<TKey,TValue> da un IEnumerable<T> in base a una funzione del selettore di chiave specificata. |
| ToFrozenDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Crea un FrozenDictionary<TKey,TValue> da un IEnumerable<T> in base ai selettori di chiave e alle funzioni del selettore di elementi specificati. |
| ToFrozenDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Crea un oggetto FrozenDictionary<TKey,TValue> da un oggetto IEnumerable<T> in base alla funzione del selettore di chiave specificata. |
| ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>) |
Crea un oggetto FrozenSet<T> con i valori specificati. |
| ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Crea un HashSet<T> da un IEnumerable<T> usando il |
| ToHashSet<TSource>(IEnumerable<TSource>) |
Crea un HashSet<T> da un IEnumerable<T>. |
| ToImmutableArray<TSource>(IEnumerable<TSource>) |
Crea una matrice non modificabile dalla raccolta specificata. |
| ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>) |
Enumera e trasforma una sequenza e produce un dizionario non modificabile del relativo contenuto usando gli strumenti di confronto chiave e valore specificati. |
| ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>) |
Enumera e trasforma una sequenza e produce un dizionario non modificabile del relativo contenuto usando l'operatore di confronto di chiavi specificato. |
| ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Enumera e trasforma una sequenza e produce un dizionario non modificabile del relativo contenuto. |
| ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Costruisce un dizionario non modificabile in base a una trasformazione di una sequenza. |
| ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Costruisce un dizionario non modificabile da una raccolta esistente di elementi, applicando una funzione di trasformazione alle chiavi di origine. |
| ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
Enumera una sequenza, produce un set di hash non modificabile del relativo contenuto e usa l'operatore di confronto di uguaglianza specificato per il tipo di set. |
| ToImmutableHashSet<TSource>(IEnumerable<TSource>) |
Enumera una sequenza e produce un set di hash non modificabile del relativo contenuto. |
| ToImmutableList<TSource>(IEnumerable<TSource>) |
Enumera una sequenza e produce un elenco non modificabile del relativo contenuto. |
| ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>) |
Enumera e trasforma una sequenza e produce un dizionario ordinato non modificabile del relativo contenuto usando gli strumenti di confronto chiave e valore specificati. |
| ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>) |
Enumera e trasforma una sequenza e produce un dizionario ordinato non modificabile del relativo contenuto usando l'operatore di confronto di chiavi specificato. |
| ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>) |
Enumera e trasforma una sequenza e produce un dizionario ordinato non modificabile del relativo contenuto. |
| ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Enumera una sequenza, produce un set ordinato non modificabile del relativo contenuto e usa l'operatore di confronto specificato. |
| ToImmutableSortedSet<TSource>(IEnumerable<TSource>) |
Enumera una sequenza e produce un set ordinato non modificabile del relativo contenuto. |
| ToList<TSource>(IEnumerable<TSource>) |
Crea un List<T> da un IEnumerable<T>. |
| ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base a una funzione del selettore di chiave specificata, un operatore di confronto e una funzione selettore di elementi. |
| ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base ai selettori di chiave e alle funzioni del selettore di elementi specificati. |
| ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificati. |
| ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Crea un Lookup<TKey,TElement> da un IEnumerable<T> in base a una funzione del selettore di chiave specificata. |
| TryGetNonEnumeratedCount<TSource>(IEnumerable<TSource>, Int32) |
Tenta di determinare il numero di elementi in una sequenza senza forzare un'enumerazione. |
| Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Produce l'unione set di due sequenze utilizzando un IEqualityComparer<T>specificato. |
| Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
Produce l'unione di set di due sequenze usando l'operatore di confronto di uguaglianza predefinito. |
| UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Produce l'unione di set di due sequenze in base a una funzione del selettore di chiave specificata. |
| UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>) |
Produce l'unione di set di due sequenze in base a una funzione del selettore di chiave specificata. |
| Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Filtra una sequenza di valori in base a un predicato. |
| Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Filtra una sequenza di valori in base a un predicato. L'indice di ogni elemento viene usato nella logica della funzione predicato. |
| Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>) |
Applica una funzione specificata agli elementi corrispondenti di due sequenze, generando una sequenza dei risultati. |
| Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>) |
Produce una sequenza di tuple con elementi delle tre sequenze specificate. |
| Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>) |
Produce una sequenza di tuple con elementi delle due sequenze specificate. |