Una definizione di collezione include tipicamente un segnaposto tra parentesi angolari, spesso T per convenzione. Una tale collezione è detta tipo generico. Ciò permette a chi usa la collezione di specificare quale tipo di elementi memorizzare nella collezione. Nel codice di esempio qui sotto stiamo istanziando un array di stringhe.
Gli array in C# sono collezioni di valori primitivi o di istanze di struct o classi. Sono implementati nella libreria di classi di base come List<T>, dove T è il tipo dell'elemento nell'array. L'API espone una ricca serie di metodi per creare e manipolare array.
Gli elementi possono essere aggiunti e rimossi dagli array. Crescono e si riducono a seconda delle necessità.
var listOfStrings = new List<string>();
In questo esercizio scriverai del codice per tenere traccia di un array di linguaggi di programmazione che vuoi imparare su Exercism.
Dovrai svolgere nove attività, che riguarderanno tutte la gestione degli array.
Per tenere traccia dei linguaggi che vuoi imparare, dovrai creare un nuovo array.
Implementa il metodo statico Languages.NewList() che restituisce un nuovo array vuoto.
Languages.NewList()
// => empty list
Al momento hai un foglio di carta su cui sono elencati i linguaggi che vuoi imparare: C#, Clojure ed Elm.
Implementa il metodo statico Languages.GetExistingLanguages() per restituire l'array.
Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}
Mentre esplori Exercism e trovi linguaggi più interessanti, vorrai aggiungerli all'array.
Implementa la funzione statica Languages.AddLanguage() per aggiungere un nuovo linguaggio in fondo all'array.
Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}
Contare i linguaggi uno per uno è scomodo.
Implementa il metodo statico Languages.CountLanguages() per contare il numero di linguaggi nell'array.
Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3
Implementa il metodo statico Languages.HasLanguage() per verificare se un linguaggio è presente.
Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true
A un certo punto ti accorgi che l'array è in realtà ordinato al contrario!
Implementa il metodo statico Languages.ReverseList() per invertire l'array.
Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}
Anche se ami tutti i linguaggi, C# ha un posto speciale nel tuo cuore. Per questo, un array di linguaggi ti entusiasma davvero se una delle seguenti condizioni è vera:
Implementa il metodo statico Languages.IsExciting() per verificare se un array di linguaggi è entusiasmante:
Languages.IsExciting(Languages.GetExistingLanguages())
// => true
Implementa il metodo statico Languages.RemoveLanguage() per rimuovere un linguaggio specificato dall'array.
Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }
Implementa il metodo statico Languages.IsUnique() per verificare se uno dei linguaggi è ripetuto nell'array.
L'array di linguaggi (cioè il parametro) è garantito non vuoto quando questo metodo viene chiamato, e non importa se l'array viene modificato.
Languages.IsUnique(Languages.GetExistingLanguages())
// => true
Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.