Ένας ορισμός συλλογής περιλαμβάνει συνήθως μια θέση μέσα σε γωνιακές αγκύλες, συχνά το T κατά σύμβαση. Μια τέτοια συλλογή ονομάζεται γενικός τύπος. Αυτό επιτρέπει στον χρήστη της συλλογής να καθορίσει τι τύπου στοιχεία θα αποθηκεύονται στη συλλογή. Στο παρακάτω παράδειγμα κώδικα, δημιουργούμε ένα στιγμιότυπο μιας λίστας συμβολοσειρών.
Οι λίστες στη C# είναι συλλογές από πρωτογενείς τιμές ή στιγμιότυπα δομών ή κλάσεων. Υλοποιούνται στη βιβλιοθήκη βασικών κλάσεων ως List<T>, όπου το T είναι ο τύπος του στοιχείου στη λίστα. Το API παρέχει ένα πλούσιο σύνολο μεθόδων για τη δημιουργία και τον χειρισμό λιστών.
Στις λίστες μπορούν να προστεθούν και να αφαιρεθούν στοιχεία. Μεγαλώνουν και μικραίνουν ανάλογα με τις ανάγκες.
var listOfStrings = new List<string>();
Σε αυτή την άσκηση θα γράφεις κώδικα για να κρατάς μια λίστα με τις γλώσσες προγραμματισμού που θέλεις να μάθεις στο Exercism.
Έχεις εννέα εργασίες, οι οποίες όλες θα έχουν να κάνουν με λίστες.
Για να κρατάς τις γλώσσες που θέλεις να μάθεις, θα χρειαστεί να δημιουργήσεις μια νέα λίστα.
Υλοποίησε τη στατική μέθοδο Languages.NewList() που επιστρέφει μια νέα, κενή λίστα.
Languages.NewList()
// => empty list
Αυτή τη στιγμή έχεις ένα κομμάτι χαρτί όπου αναγράφονται οι γλώσσες που θέλεις να μάθεις: C#, Clojure και Elm.
Υλοποίησε τη στατική μέθοδο Languages.GetExistingLanguages() ώστε να επιστρέφει αυτή τη λίστα.
Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}
Καθώς εξερευνάς το Exercism και βρίσκεις πιο ενδιαφέρουσες γλώσσες, θέλεις να τις προσθέσεις στη λίστα σου.
Υλοποίησε τη στατική συνάρτηση Languages.AddLanguage() για να προσθέτεις μια νέα γλώσσα στο τέλος της λίστας σου.
Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}
Το να μετράς τις γλώσσες μία προς μία είναι άβολο.
Υλοποίησε τη στατική μέθοδο Languages.CountLanguages() για να μετράς τον αριθμό των γλωσσών στη λίστα σου.
Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3
Υλοποίησε τη στατική μέθοδο Languages.HasLanguage() για να ελέγχεις αν μια γλώσσα υπάρχει στη λίστα.
Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true
Κάποια στιγμή συνειδητοποιείς ότι η λίστα σου είναι στην πραγματικότητα με αντίστροφη σειρά!
Υλοποίησε τη στατική μέθοδο Languages.ReverseList() για να αντιστρέψεις τη λίστα σου.
Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}
Αν και αγαπάς όλες τις γλώσσες, η C# έχει μια ξεχωριστή θέση στην καρδιά σου. Έτσι, ενθουσιάζεσαι πραγματικά με μια λίστα γλωσσών αν ισχύει μία από τις παρακάτω συνθήκες:
Υλοποίησε τη στατική μέθοδο Languages.IsExciting() για να ελέγχεις αν μια λίστα γλωσσών είναι συναρπαστική:
Languages.IsExciting(Languages.GetExistingLanguages())
// => true
Υλοποίησε τη στατική μέθοδο Languages.RemoveLanguage() για να αφαιρείς μια συγκεκριμένη γλώσσα από τη λίστα.
Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }
Υλοποίησε τη στατική μέθοδο Languages.IsUnique() για να ελέγχεις αν κάποια από τις γλώσσες επαναλαμβάνεται στη λίστα.
Η λίστα των γλωσσών (δηλαδή η παράμετρος) είναι εγγυημένα μη κενή όταν καλείται αυτή η μέθοδος, και δεν πειράζει αν η λίστα τροποποιηθεί.
Languages.IsUnique(Languages.GetExistingLanguages())
// => true
Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.