Condividi tramite


Insiemi e strutture di dati

I dati strettamente correlati possono essere gestiti in modo più efficace quando sono raggruppati in un insieme. Anziché scrivere codice separato per gestire ogni singolo oggetto, è possibile utilizzare lo stesso codice per elaborare tutti gli elementi di un insieme.

Per gestire un insieme, utilizzare la classe System.Array e le classi negli spazi dei nomi System.Collections, System.Collections.Generic e System.Collections.Concurrent per aggiungere, rimuovere e modificare singoli elementi o un intervallo di elementi dell'insieme. È perfino possibile copiare un intero insieme in un altro insieme.

Alcune classi di System.Collections sono dotate di funzionalità di ordinamento e la maggior parte è indicizzata. La gestione della memoria è condotta automaticamente e la funzionalità di un insieme viene estesa in base alle necessità. La sincronizzazione fornisce la thread safety quando si accede ai membri dell'insieme. Alcune classi di System.Collections possono generare wrapper che rendono l'insieme di sola lettura o di dimensioni fisse. Qualsiasi classe di System.Collections può generare il proprio enumeratore che semplifica lo scorrimento degli elementi.

In .NET Framework versione 2.0 le classi di insiemi generici forniscono nuove funzionalità e consentono di creare con facilità insiemi fortemente tipizzati. Per informazioni, vedere gli spazi dei nomi System.Collections.Generic e System.Collections.ObjectModel.

In .NET Framework versione 4, gli insiemi nello spazio dei nomi System.Collections.Concurrent forniscono operazioni thread-safe efficienti per accedere agli elementi dell'insieme da più thread.

La funzionalità LINQ to Objects consente di utilizzare le query LINQ per accedere agli oggetti in memoria purché il tipo dell'oggetto implementi l'interfaccia System.Collections.IEnumerable o System.Collections.Generic.IEnumerable<T>. Le query LINQ forniscono un modello comune per l'accesso ai dati, sono in genere più concise e leggibili dei cicli standard foreach e forniscono funzioni di filtro, ordinamento e raggruppamento. Le query LINQ possono inoltre migliorare le prestazioni. Per ulteriori informazioni, vedere LINQ to Objects e Parallel LINQ (PLINQ).

Argomenti correlati

Titolo

Descrizione

Definizione di insiemi

Vengono descritti i tipi di insieme e vengono illustrate le differenze fra tipi di insieme generici e non generici nella libreria di classi .NET Framework.

Tipi di insieme comunemente utilizzati

Vengono descritti i tipi di insieme generici e non generici comunemente utilizzati, quali System.Array, System.Collections.Generic.List<T> e System.Collections.Generic.Dictionary<TKey, TValue>.

Insiemi bit

Vengono descritti i tipi di insieme System.Collections.BitArray e System.Collections.Specialized.BitVector32.

Insiemi specializzati

Vengono descritti gli insiemi per scopi specifici quali System.Collections.Specialized.NameValueCollection, System.Collections.Specialized.StringDictionary e System.Collections.Specialized.StringCollection.

Insiemi thread-safe

Vengono descritti i tipi di insieme quali System.Collections.Concurrent.BlockingCollection<T> e System.Collections.Concurrent.ConcurrentBag<T> che supportano l'accesso simultaneo sicuro ed efficiente da più thread.

Creazione e modifica degli insiemi

Viene illustrato come selezionare il tipo di insieme più adatto, enumerare gli insiemi, utilizzare gli insiemi con più thread e ordinare gli insiemi.

Quando utilizzare insiemi generici

Viene illustrato l'utilizzo di tipi di insieme generici.

Riferimenti

System.Array

System.Collections

System.Collections.Concurrent

System.Collections.Generic

System.Collections.Specialized

System.Linq