Egy gyűjtemény definíciója általában tartalmaz egy helyőrzőt csúcsos zárójelben, amelyet a szokás szerint gyakran T-nek nevezünk. Az ilyen gyűjteményt generikus típusnak nevezzük. Ez lehetővé teszi, hogy a gyűjtemény használója megadja, milyen típusú elemeket tároljon a gyűjteményben. Az alábbi példakódban egy stringekből álló listát példányosítunk.
A C#-ban a listák primitív értékek, illetve struktúrák vagy osztályok példányainak gyűjteményei. Az alaposztály-könyvtárban List<T> formában vannak megvalósítva, ahol a T a listában tárolt elem típusa. Az API gazdag metóduskészletet kínál a listák létrehozásához és kezeléséhez.
A listákhoz elemek adhatók, és elemek eltávolíthatók belőlük. Szükség szerint nőnek és zsugorodnak.
var listOfStrings = new List<string>();
Ebben a feladatban olyan kódot írsz, amely számon tartja, milyen programozási nyelveket szeretnél megtanulni az Exercism-ön.
Kilenc részfeladat vár rád, és mindegyik a listákkal való munkáról szól.
Ahhoz, hogy számon tudd tartani a megtanulni kívánt nyelveket, létre kell hoznod egy új listát.
Valósítsd meg a statikus Languages.NewList() metódust, amely egy új, üres listát ad vissza.
Languages.NewList()
// => empty list
Jelenleg van egy papírlapod, amelyen azok a nyelvek szerepelnek, amelyeket meg szeretnél tanulni: C#, Clojure és Elm.
Valósítsd meg a statikus Languages.GetExistingLanguages() metódust, amely visszaadja ezt a listát.
Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}
Ahogy egyre többet fedezel fel az Exercism-ön, és egyre érdekesebb nyelvekre bukkansz, szeretnéd felvenni őket a listádra.
Valósítsd meg a statikus Languages.AddLanguage() függvényt, amely egy új nyelvet fűz a listád végére.
Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}
Kényelmetlen egyenként megszámolni a nyelveket.
Valósítsd meg a statikus Languages.CountLanguages() metódust, amely megszámolja, hány nyelv van a listádon.
Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3
Valósítsd meg a statikus Languages.HasLanguage() metódust, amellyel ellenőrizheted, hogy egy nyelv szerepel-e a listán.
Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true
Egy ponton rájössz, hogy a listád valójában fordított sorrendben van!
Valósítsd meg a statikus Languages.ReverseList() metódust, amely megfordítja a listádat.
Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}
Bár minden nyelvet szeretsz, a C# különleges helyet foglal el a szívedben. Ezért igazán izgatott leszel egy nyelvlistától, ha az alábbi feltételek valamelyike igaz:
Valósítsd meg a statikus Languages.IsExciting() metódust, amellyel ellenőrizheted, hogy izgalmas-e egy nyelvlista:
Languages.IsExciting(Languages.GetExistingLanguages())
// => true
Valósítsd meg a statikus Languages.RemoveLanguage() metódust, amely eltávolít egy megadott nyelvet a listáról.
Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }
Valósítsd meg a statikus Languages.IsUnique() metódust, amellyel ellenőrizheted, hogy ismétlődik-e valamelyik nyelv a listán.
Garantált, hogy a nyelvek listája (azaz a paraméter) nem üres, amikor ezt a metódust meghívják, és az sem számít, ha a lista módosul.
Languages.IsUnique(Languages.GetExistingLanguages())
// => true
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.