Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a bevezető oktatóanyag bemutatja a C# nyelvét és az osztály alapjait.
Ez az oktatóanyag interaktívan tanítja meg a C#-ot a böngészőben C# kód írására, valamint a kód összeállításának és futtatásának eredményeinek megtekintésére. Gyűjteményeket és tömböket létrehozó, módosító és feltáró leckéket tartalmaz. Elsősorban az List<T> osztállyal dolgozik.
Egy egyszerű lista példa
Borravaló
Ha egy kódrészletblokk tartalmazza a "Futtatás" gombot, az a gomb megnyitja az interaktív ablakot, vagy lecseréli a meglévő kódot az interaktív ablakban. Ha a kódrészlet nem tartalmaz "Futtatás" gombot, átmásolhatja a kódot, és hozzáadhatja az aktuális interaktív ablakhoz.
Futtassa az alábbi kódot az interaktív ablakban. Cserélje le <name>
a nevére, és válassza a futtatásopciót.
List<string> names = ["<name>", "Ana", "Felipe"];
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Létrehozott egy karakterláncok listáját, három nevet adott hozzá a listához, és kinyomtatta a neveket NAGYBETŰKKEL. A korábbi oktatóanyagokban tanult fogalmakat használja a lista végighaladásához.
A nevek megjelenítésére szolgáló kód a karakterlánc interpolációs funkciót használja. Amikor egy string
karaktert egy $
karakterrel megelőz, C#-kódot ágyazhat be a sztringdeklarációba. A tényleges karakterlánc helyettesíti a C#-kódot a létrehozott értékkel. Ebben a példában a {name.ToUpper()}
helyére minden nevet lecserél, nagybetűkké alakítva át őket, mert a String.ToUpper metódust meghívta.
Folytassuk a felfedezést.
Lista tartalmának módosítása
A létrehozott gyűjtemény a List<T> típust használja. Ez a típus elemek sorozatait tárolja. Megadhatja az elemek típusát a szögletes zárójelek között.
Ennek a List<T> típusnak az egyik fontos eleme, hogy növekedhet vagy zsugorodhat, így elemeket vehet fel vagy távolíthat el. Miután megjelenítette a tartalmat, az eredményeket úgy tekintheti meg, hogy módosítja azt. Adja hozzá a következő kódot a már írt kód után (a tartalmat kinyomó hurok):
Console.WriteLine();
names.Add("Maria");
names.Add("Bill");
names.Remove("Ana");
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
További két nevet adott hozzá a lista végéhez. Te is eltávolítottál egyet. A kódblokk kimenete megjeleníti a kezdeti tartalmat, majd kinyomtat egy üres sort és az új tartalmat.
A List<T> lehetővé teszi, hogy az egyes elemekre index szerint is hivatkozzon. Az elemeket a [
és ]
jogkivonatok használatával érheti el. Adja hozzá a következő kódot a már írt kód után, és próbálja ki:
Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");
A lista végéhez nem férhet hozzá. Ellenőrizheti, hogy a lista mennyi ideig használja a Count tulajdonságot. Adja hozzá a következő kódot:
Console.WriteLine($"The list has {names.Count} people in it");
Válassza a Futtatás újra lehetőséget az eredmények megtekintéséhez. A C#-ban az indexek 0-nál kezdődnek, így a legnagyobb érvényes index eggyel kevesebb, mint a lista elemeinek száma.
Listák keresése és rendezése
A minták viszonylag kis listákat használnak, de az alkalmazások gyakran több elemet tartalmazó listákat hozhatnak létre, néha ezres számokkal. A nagyobb gyűjtemények elemeinek kereséséhez különböző elemeket kell keresnie a listában. A IndexOf metódus megkeres egy elemet, és visszaadja az elem indexét. Ha az elem nem szerepel a listában, IndexOf
-1
ad vissza. Próbálja ki, hogy hogyan működik. Adja hozzá az alábbi kódot az eddig írtak után:
var index = names.IndexOf("Felipe");
if (index == -1)
{
Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
index = names.IndexOf("Not Found");
if (index == -1)
{
Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
Előfordulhat, hogy nem tudja, hogy egy elem szerepel-e a listában, ezért mindig ellenőrizze a IndexOfáltal visszaadott indexet. Ha -1
, az elem nem található.
A lista elemei is rendezhetők. A Sort metódus a lista összes elemét normál sorrendben rendezi (sztringek betűrendben). Adja hozzá ezt a kódot, és futtassa újra:
names.Sort();
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Más típusú listák
Eddig a string
típust használtad a listákban. Hozzunk létre egy List<T> egy másik típussal. Állítsunk össze számokat. Törölje az eddig írt kódot, és cserélje le a következő kódra:
List<int> fibonacciNumbers = [1, 1];
Ez létrehozza az egész számok listáját, és az első két egész számot 1 értékre állítja. A Fibonacci-sorozat, amely számok sorozata, két 1-zel kezdődik. Minden következő Fibonacci-szám az előző két szám összegének megadásával található. Adja hozzá a következő kódot:
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
foreach (var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Az eredmények megtekintéséhez nyomja le a Futtatás gombot;
Kihívás
Nézze meg, hogy összeállíthat-e néhány fogalmat ebből és a korábbi leckékből. Fejlessze tovább az eddigieket a Fibonacci-számok segítségével. Próbálja meg írni a kódot, hogy létrehozza az első 20 számot a sorozatban. (Tippként a 20. Fibonacci szám 6765.)
Előjött valami ilyesmi?
A ciklus minden iterációjával a lista utolsó két egész számát veszi, összegzi őket, és hozzáadja az eredményt a listához. A ciklus addig ismétlődik, amíg 20 elemet nem ad hozzá a listához.
Elvégezte az interaktív listaoktatóanyagot, a C# interaktív oktatóanyagának utolsó részét. Látogasson el a .NET-webhelyre, töltse le a .NET SDK-t, hozzon létre egy projektet a gépen, és folytassa a kódolást. A "Következő lépések" szakaszban visszatérhet ezekhez az oktatóanyagokhoz. Vagy folytathatja az Objektumorientált programozás felfedezése osztályokkal és objektumokkal című oktatóanyagot .
Többet megtudhat a .NET-gyűjteményekről az alábbi cikkekben: