Raccolte generiche in .NETGeneric Collections in .NET

La libreria di classi .NET offre varie classi di raccolte generiche negli spazi dei nomi System.Collections.Generic e System.Collections.ObjectModel.The .NET class library provides a number of generic collection classes in the System.Collections.Generic and System.Collections.ObjectModel namespaces. Per informazioni più dettagliate su queste classi, vedere Tipi di raccolte comunemente usate.For more detailed information about these classes, see Commonly Used Collection Types.

System.Collections.GenericSystem.Collections.Generic

Diversi tipi di raccolta generici sono analoghi diretti di tipi non generici.Many of the generic collection types are direct analogs of nongeneric types. Dictionary<TKey,TValue> è una versione generica di Hashtable. Usa la struttura generica KeyValuePair<TKey,TValue> per l'enumerazione invece di DictionaryEntry.Dictionary<TKey,TValue> is a generic version of Hashtable; it uses the generic structure KeyValuePair<TKey,TValue> for enumeration instead of DictionaryEntry.

List<T> è una versione generica di ArrayList.List<T> is a generic version of ArrayList. Esistono classi Queue<T> e Stack<T> generiche che corrispondono alle versioni non generiche.There are generic Queue<T> and Stack<T> classes that correspond to the nongeneric versions.

Esistono versioni generiche e non generiche di SortedList<TKey,TValue>.There are generic and nongeneric versions of SortedList<TKey,TValue>. Entrambe le versioni sono ibridi di un dizionario e di un elenco.Both versions are hybrids of a dictionary and a list. La classe generica SortedDictionary<TKey,TValue> è un dizionario vero e proprio e non ha una controparte non generica.The SortedDictionary<TKey,TValue> generic class is a pure dictionary and has no nongeneric counterpart.

La classe generica LinkedList<T> è un vero elenco collegato.The LinkedList<T> generic class is a true linked list. Non ha una controparte non generica.It has no nongeneric counterpart.

System.Collections.ObjectModelSystem.Collections.ObjectModel

La classe generica Collection<T> fornisce una classe base da cui derivare i propri tipi di raccolta generici.The Collection<T> generic class provides a base class for deriving your own generic collection types. La classe ReadOnlyCollection<T> consente di creare facilmente una raccolta di sola lettura dai tipi che implementano l'interfaccia generica IList<T>.The ReadOnlyCollection<T> class provides an easy way to produce a read-only collection from any type that implements the IList<T> generic interface. La classe generica KeyedCollection<TKey,TItem> consente di archiviare oggetti contenenti le relative chiavi.The KeyedCollection<TKey,TItem> generic class provides a way to store objects that contain their own keys.

Altri tipi genericiOther Generic Types

La struttura generica Nullable<T> consente di usare tipi di valore come se potessero essere impostati su null.The Nullable<T> generic structure allows you to use value types as if they could be assigned null. Può risultare utile quando si usano query di database, dove possono mancare campi che contengono tipi di valore.This can be useful when working with database queries, where fields that contain value types can be missing. Il parametro di un tipo generico può essere qualsiasi tipo di valore.The generic type parameter can be any value type.

Nota

In C# e Visual Basic non è necessario usare Nullable<T> in modo esplicito perché questo linguaggio dispone della sintassi per i tipi nullable.In C# and Visual Basic, it is not necessary to use Nullable<T> explicitly because the language has syntax for nullable types. Vedere Tipi nullable (Guida per programmatori C#) e Tipi di valori nullable (Visual Basic).See Nullable types (C# Programming Guide) and Nullable value types (Visual Basic).

La struttura generica ArraySegment<T> consente di delimitare un intervallo di elementi in una matrice unidimensionale in base zero di qualsiasi tipo.The ArraySegment<T> generic structure provides a way to delimit a range of elements within a one-dimensional, zero-based array of any type. Il parametro di tipo generico è il tipo degli elementi della matrice.The generic type parameter is the type of the array's elements.

Con il delegato generico EventHandler<TEventArgs> non è più necessario dichiarare un tipo di delegato per gestire gli eventi, se l'evento segue il modello di gestione degli eventi usato da .NET Framework.NET Framework.The EventHandler<TEventArgs> generic delegate eliminates the need to declare a delegate type to handle events, if your event follows the event-handling pattern used by the .NET Framework.NET Framework. Si supponga, ad esempio, di aver creato una classe MyEventArgs, derivata da EventArgs, in cui includere i dati dell'evento.For example, suppose you have created a MyEventArgs class, derived from EventArgs, to hold the data for your event. È quindi possibile dichiarare l'evento come indicato di seguito:You can then declare the event as follows:

public:
    event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)

Vedere ancheSee Also

System.Collections.Generic
System.Collections.ObjectModel
GenericsGenerics
Delegati generici per la modifica di matrici ed elenchiGeneric Delegates for Manipulating Arrays and Lists
Interfacce genericheGeneric Interfaces