Una raccolta generica è una classe che fornisce sicurezza di tipo senza dover derivare da un tipo di raccolta di base e implementare membri specifici del tipo. Una raccolta non generica è una classe specializzata per l'archiviazione e il recupero dei dati che fornisce supporto per stack, code, elenchi e hashtables. Il differenza fondamentale tra la raccolta generica e quella non generica in C # è quella una collezione generica è fortemente tipizzata mentre una raccolta non generica non è fortemente tipizzata.
1. Panoramica e differenza chiave
2. Cos'è la raccolta generica in C #
3. Che cos'è una raccolta non generica in C #
4. Somiglianze tra raccolta generica e non generica in C #
5. Confronto affiancato - Raccolta generica vs non generica in C # in forma tabellare
6. Sommario
Le raccolte non generiche come ArrayList, Queue, Stack, ecc. Possono memorizzare elementi di diversi tipi di dati. Quando si ottengono gli elementi, il programmatore deve digitare il cast al tipo di dati corretto. Altrimenti, può causare un'eccezione di runtime. Le classi di raccolta generiche possono essere utilizzate per superare questo problema. Le raccolte generiche memorizzano gli elementi internamente in array dei loro tipi effettivi. Pertanto, digitare casting non è richiesto. Possono essere utilizzati per memorizzare elementi del tipo o dei tipi specificati. Alcune classi di raccolta generiche sono List, Dictionary, SortedList, HashSet, Queue, Stack .
La lista generica contiene elementi di tipo specificato. Può aumentare l'elenco di conseguenza quando si aggiungono elementi. Quando c'è un'istruzione come segue, tutti gli elementi che possono essere memorizzati nella lista1 dovrebbero essere numeri interi,
Elenco lista1 - nuova lista ();
Il dizionario generico in C # è un insieme di chiavi e valori. Quando c'è un'istruzione come segue, il dizionario oggetti1 può memorizzare chiavi di tipo int e valori di tipo stringa.
Dizionario dictionary1 = new Dictionary ();
Per impostazione predefinita, una raccolta SortedList generica memorizza coppie di chiavi e valori in ordine crescente di chiave. Sotto l'esempio memorizza la chiave di tipo int e il valore del tipo di stringa.
SortedList s0 = new SortedList ();
Questi sono alcuni esempi di Collezione generica in C #. Queste raccolte possono memorizzare più valori dei tipi di dati specificati. Quindi, sono fortemente tipizzati.
Le matrici possono essere utilizzate per memorizzare più elementi. Uno svantaggio è che può memorizzare elementi dello stesso tipo di dati. Esistono classi in C # che possono essere utilizzate per memorizzare molti valori o oggetti noti come raccolte. Le raccolte aiutano a memorizzare, aggiornare, eliminare, cercare, ordinare gli oggetti. La dimensione della collezione può essere aumentata o diminuita dinamicamente.
Alcune classi Collection non generiche sono ArrayList, SortedList, Stack, Queue e HashTable. Ogni classe di raccolta implementa l'interfaccia IEnumerable. Aiuta a scorrere gli elementi degli elementi nella raccolta utilizzando il ciclo foreach.
ArrayList è un'alternativa a un array. Se esiste un array che può memorizzare 10 elementi, non può memorizzare 20 elementi. Se l'array è inizializzato su 10 elementi ma memorizza solo 5 elementi, il resto è un non usato. Pertanto, una matrice è fissa. In ArrayList, è possibile aggiungere o rimuovere elementi a seconda dell'indice. Permette l'allocazione dinamica della memoria. Il metodo di ordinamento può essere utilizzato per ordinare gli elementi in ordine crescente.
La HashTable viene utilizzata per rappresentare una raccolta di coppie di valori chiave. Sono organizzati in base al codice hash della chiave. Pertanto, ogni elemento ha una coppia di valori chiave. La chiave può essere utilizzata per accedere a un particolare elemento nella raccolta. La pila rappresenta l'ultimo accesso, primo accesso agli oggetti. La coda viene utilizzata per il primo accesso agli articoli per primo. Queste sono alcune delle raccolte non generiche supportate da C #. Queste raccolte possono memorizzare elementi di diverso tipo.
Collezione generica vs non generica in C # | |
Una raccolta generica è una classe che fornisce sicurezza di tipo senza dover derivare da un tipo di raccolta di base e implementare membri specifici del tipo. | Una raccolta non generica è una classe specializzata per l'archiviazione e il recupero dei dati che fornisce supporto per stack, code, elenchi e tabelle hash. |
Spazio dei nomi | |
Le classi di raccolta generiche sono nel sistema. Collezioni. Spazio dei nomi generici. | Le classi di raccolta non generiche sono nel sistema. Spazio dei nomi delle collezioni. |
genere | |
Una collezione generica è fortemente tipizzata. | Una raccolta non generica non è fortemente tipizzata. |
Memorizzazione di elementi | |
Le Collezioni generiche memorizzano gli elementi internamente in array dei loro tipi effettivi. | Le raccolte non generiche memorizzano gli elementi internamente negli array di oggetti in modo da poter memorizzare qualsiasi tipo di dati. |
Questo articolo ha discusso la differenza tra raccolta generica e non generica in C #. La differenza tra la raccolta generica e quella non generica è che una raccolta generica è fortemente tipizzata mentre una raccolta non generica non è fortemente tipizzata.
1. "Quando utilizzare le raccolte generiche". Microsoft Docs. Disponibile qui
2. "Collezione generica in C #." TutorialsTeacher.com. Disponibile qui
3. "Collezione C #:" Collezione in C #, TutorialsTeacher.com. Disponibile qui
4. "Collezioni C #"., Punto tutorial, 19 marzo 2018. Disponibile qui
1.'Logo C Sharp'By Microsoft , (Dominio pubblico) tramite Commons Wikimedia