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 |
---|---|
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. |
|
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>. |
|
Vengono descritti i tipi di insieme System.Collections.BitArray e System.Collections.Specialized.BitVector32. |
|
Vengono descritti gli insiemi per scopi specifici quali System.Collections.Specialized.NameValueCollection, System.Collections.Specialized.StringDictionary e System.Collections.Specialized.StringCollection. |
|
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. |
|
Viene illustrato come selezionare il tipo di insieme più adatto, enumerare gli insiemi, utilizzare gli insiemi con più thread e ordinare gli insiemi. |
|
Viene illustrato l'utilizzo di tipi di insieme generici. |