Gyakorlat – Ismerkedés a tömbök alapjaival
- 19 perc
A tömbök több azonos típusú érték tárolására használhatók egyetlen változóban. A tömbben tárolt értékek általában összefüggnek. A diákok nevének listája például egy sztringtömbben studentstárolható.
A biztonsági részlegen végzett munkája a csalárd megrendelések mintájának megtalálására összpontosít. Azt szeretné, hogy a kód áttekintse a korábbi ügyfélrendeléseket, és azonosítsa a csalárd megrendelésekhez kapcsolódó jelölőket. A vállalat reméli, hogy a jelölőkkel azonosítani lehet a potenciális csalárd vásárlási megrendeléseket a jövőben a feldolgozásuk előtt. Mivel nem mindig tudja előre, hogy hány rendelést kell felülvizsgálnia, nem hozhat létre egyedi változókat az egyes rendelésazonosítók tárolásához. Hogyan hozhat létre adatstruktúrát több kapcsolódó érték tárolására?
Ebben a gyakorlatban tömbök használatával tárolhatja és elemezheti a rendelésazonosítók gyűjteményét.
Mi a tömb?
A tömbök egyetlen változónévvel elérhető egyéni adatelemek gyűjteményei. A tömb egyes elemei egy nullával kezdődő index alapján érhetők el. A tömbök lehetővé teszik olyan adatértékek gyűjteményének létrehozását, amelyek közös célt vagy jellemzőket osztanak meg egyetlen változónévvel a könnyebb feldolgozás érdekében.
Tömbök deklarálása és a tömbelemek elérése
A tömb speciális változótípus, amely több ugyanolyan adattípusú érték tárolására alkalmas. A deklaráció szintaxisa kissé eltér a tömbökhöz, mivel meg kell adnia a tömb adattípusát és méretét is.
A kódolási környezet előkészítése
Ez a modul olyan tevékenységeket tartalmaz, amelyek végigvezetik a mintakód létrehozásának és futtatásának folyamatán. Javasoljuk, hogy fejlesztési környezetként a Visual Studio Code használatával végezze el ezeket a tevékenységeket. Ha a Visual Studio Code-ot használja ezekhez a tevékenységekhez, könnyebben írhat és futtathat kódokat egy olyan fejlesztői környezetben, amelyet világszerte használnak a szakemberek.
Nyissa meg a Visual Studio Code-ot.
A Visual Studio Code megnyitásához használhatja a Windows Start menüjét (vagy egy másik operációs rendszer egyenértékű erőforrását).
A Visual Studio Code File menüben válassza a Mappa megnyitása lehetőséget.
A Mappa megnyitása párbeszédpanelen lépjen a Windows Desktop mappába.
Ha más mappahelyen tartja a kódprojekteket, használhatja inkább ezt a mappahelyet. Ebben a képzésben az a fontos, hogy legyen egy könnyen megtalálható és megjegyezhető hely.
A Mappa megnyitása párbeszédpanelen válassza a Mappa kiválasztása lehetőséget.
Ha megjelenik egy biztonsági párbeszédpanel, amely megkérdezi, hogy megbízik-e a szerzőkben, válassza az Igen lehetőséget.
A Visual Studio Code Terminál menüjében válassza az Új terminál lehetőséget.
Figyelje meg, hogy a Terminál panelen egy parancssor megjeleníti az aktuális mappa elérési útját. Például:
C:\Users\someuser\Desktop>Feljegyzés
Ha nem tesztkörnyezetben vagy üzemeltetett környezetben, hanem saját PC-n dolgozik, és ebben a C#-sorozatban más Microsoft Learn-modulokat is elvégzett, előfordulhat, hogy már létrehozott egy projektmappát a kódmintákhoz. Ha ez a helyzet, átugorhatja a következő lépést, amellyel konzolalkalmazást hozhat létre a TestProject mappában.
Ha új konzolalkalmazást szeretne létrehozni egy adott mappában a Terminál parancssorában, írja be a következő parancssort:
dotnet new console -o ./CsharpProjects/TestProjectEz a .NET CLI-parancs .NET-programsablon használatával hoz létre egy új C#-konzolalkalmazás-projektet a megadott mappahelyen. A parancs létrehozza Önnek a CsharpProjects és a TestProject mappákat, és a Fájl neveként
.csproja TestProjectet használja.Ha megjelenik egy üzenet, amely közli, hogy a fájlok már léteznek, folytassa a következő lépésekkel. A meglévő projektfájlokat újra felhasználja.
Az EXPLORER nézetben bontsa ki a CsharpProjects mappát.
Ekkor megjelenik a TestProject mappa és két fájl, egy Program.cs nevű C# programfájl és egy TestProject.csproj nevű C# projektfájl.
A Visual Studio Code File menüben válassza a Mappa megnyitása lehetőséget.
A Mappa megnyitása párbeszédpanelen válassza a CsharpProjects mappát, majd válassza a Mappa kijelölése lehetőséget.
Az EXPLORER nézetben bontsa ki a TestProject mappát, majd válassza Program.cs.
Törölje a meglévő kódsorokat.
Ebben a C#-konzolprojektben kódmintákat hozhat létre, építhet és futtathat a modul során.
Zárja be a Terminál panelt.
Új tömb deklarálása
A három elemet tartalmazó karakterláncok új tömbjének deklarálásához írja be a következő kódot:
string[] fraudulentOrderIDs = new string[3];Szánjon egy percet a kód vizsgálatára.
A
newoperátor a számítógép memóriájában hoz létre új tömbpéldányt, amely három sztringérték tárolására alkalmas. Anewkulcsszóról a „Metódusok hívása a .NET-osztálytárból a C# használatával” című modulban tudhat meg további részleteket.Figyelje meg, hogy a szögletes zárójelek
[]első készlete csupán azt jelzi a fordítónak, hogy az elnevezettfraudulentOrderIDsváltozó tömb, a második szögletes zárójelek azonban azt jelzik[3], hogy a tömb hány elemet tartalmazhat.Feljegyzés
Ez a példa bemutatja, hogyan deklarálhat egy sztringtömböt, azonban létrehozhat minden adattípusból álló tömböt, beleértve a primitíveket és
intboolaz összetettebb adattípusokat, például az osztályokat. Ez a példa a sztringek egyszerűségére épít annak érdekében, hogy az első lépések során minél kevesebb új fogalmat kelljen megtanulnia.
Értékek hozzárendelése tömb elemeihez
Ezen a ponton sztringtömböt deklarált, de a tömb minden eleme üres. Egy tömb elemei a szögletes zárójelek közé írt, nullával kezdődő indexszel érhetők el. Egy tömbelemhez = úgy rendelhet hozzá értéket, mintha normál változó lenne.
A Rendelésazonosító értékek tömbhöz való
fraudulentOrderIDshozzárendeléséhez frissítse a kódot az alábbiak szerint:string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789";Szánjon egy percet a kód vizsgálatára.
Figyelje meg, hogy a tömb nevét használja a tömbelemek eléréséhez. Minden elemhez külön-külön fér hozzá, ha a szögletes zárójeleken belül nulla alapú indexszámot ad meg.
Mivel a tömb sztringként van deklarálva, a hozzárendelt értékeknek sztringeknek is kell lenniük. Ebben a forgatókönyvben rendelésazonosítókat rendel a tömb elemeihez.
Kísérlet olyan index használatára, amely kívül esik a tömb határain
Elsőre talán nem tűnik intuitívnak, de fontos megjegyezni, hogy a tömb elemeinek számát deklarálja. A tömb minden elemét azonban nullával kezdődően érheti el. Így a tömb második elemének eléréséhez indexet 1kell használnia.
A kezdők gyakran elfelejtik, hogy a tömbök nulla alapúak, és megkísérlik elérni a tömb nem létező elemeit. Ha ezt a hibát követi el, futásidejű kivétel lép fel, amely arról tájékoztatja, hogy a tömbön kívül eső elemet próbált elérni.
Ha szándékosan "megszakítja" az alkalmazást, próbálja meg elérni a tömb egy negyedik elemét a következő indexérték 3használatával: .
A kódfájl alján adja meg a következő kódsort:
fraudulentOrderIDs[3] = "D000";Győződjön meg arról, hogy a kód megfelel a példának:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; fraudulentOrderIDs[3] = "D000";A Visual Studio Code File menüben válassza a Mentés lehetőséget.
Explorer nézetben nyissa meg a Terminált a TestProject mappa helyén, kattintson a jobb gombbal a TestProject elemre, majd válassza a Megnyitás az integrált terminálban lehetőséget.
Meg kell nyitnia egy terminálpanelt, és tartalmaznia kell egy parancssort, amely azt mutatja, hogy a terminál nyitva van a TestProject mappa helye előtt.
A terminál parancssorában írja be
dotnet builda kódot, majd nyomja le az Enter billentyűt.A következő üzenetnek kell megjelennie:
Build succeeded. 0 Warning(s) 0 Error(s)A terminál parancssorában a kód futtatásához írja be
dotnet run, majd nyomja le az Enter billentyűt.Az alkalmazás futtatásakor a következő futtatókörnyezeti hibaüzenet jelenik meg:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array. at Program.<Main>$(String[] args) in C:\Users\someuser\Desktop\CsharpProjects\TestProject\Program.cs:line 6Figyelje meg a hiba alábbi részeit:
- Hibaüzenet:
System.IndexOutOfRangeException: Index was outside the bounds of the array. - Hiba helye:
Program.cs:line 6
- Hibaüzenet:
Fűzzön megjegyzést a futtatókörnyezeti hibát létrehozó sorhoz.
// fraudulentOrderIDs[3] = "D000";
Láthatta, hogyan rendelhet értékeket egy tömbelemhez. Most tekintse meg, hogyan férhet hozzá egy tömbelemben tárolt értékhez.
Értékek lekérése tömb elemeiből
A tömbelem értékének elérése ugyanúgy működik, mint egy érték tömbelemhez való hozzárendelése. Itt adhatja meg annak az elemnek az indexét, amelynek az értékét le szeretné kérni.
Az egyes hamis rendelésazonosítók értékének megírásához frissítse a kódot az alábbiak szerint:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");A Visual Studio Code File menüben válassza a Mentés lehetőséget.
Explorer nézetben nyissa meg a Terminált a TestProject mappa helyén, kattintson a jobb gombbal a TestProject elemre, majd válassza a Megnyitás az integrált terminálban lehetőséget.
Írja be
dotnet runa terminál parancssorába, majd nyomja le az Enter billentyűt.A következő üzenetnek kell megjelennie:
First: A123 Second: B456 Third: C789
Tömb értékének hozzárendelése
A tömb elemei ugyanolyanok, mint bármely más változóérték. A tömb minden eleméhez hozzárendelhet, lekérhet és rendelhet hozzá egy értéket.
A kódfájl végén adja meg az alábbi kódot az első tömbelem újbóli hozzárendeléséhez és nyomtatásához:
fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Győződjön meg arról, hogy a kód megfelel a következő példának:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");A Visual Studio Code File menüben válassza a Mentés lehetőséget.
Explorer nézetben nyissa meg a Terminált a TestProject mappa helyén, kattintson a jobb gombbal a TestProject elemre, majd válassza a Megnyitás az integrált terminálban lehetőséget.
Írja be
dotnet runa terminál parancssorába, majd nyomja le az Enter billentyűt.A következő üzenetnek kell megjelennie:
First: A123 Second: B456 Third: C789 Reassign First: F000
Tömb inicializálása
A tömböket a deklaráció során ugyanúgy inicializálhatja, mint egy normál változót.
Fűzzön megjegyzést a változó deklarálandó
fraudulentOrderIDssoraihoz.Többsoros megjegyzés (
/* ... */) használatával megjegyzést fűzhet az értékek tömbelemekhez való hozzárendeléséhezfraudulentOrderIDshasznált deklarációhoz és sorokhoz.A tömb deklarálásához és az értékek inicializálásához egy utasításban adja meg a következő kódot:
string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ];Ez a példa a Gyűjtemény kifejezés szintaxisát használja, amely a C# 12-ben lett bevezetve, és a .NET 10-ben támogatott.
Előfordulhat, hogy egy tömb inicializálásához használt régebbi szintaxis is megjelenik.
string[] fraudulentOrderIDs = { "A123", "B456", "C789" };Figyelje meg, hogy ez a régebbi szintaxis kapcsos zárójeleket
{}használ a tömb értékeinek beágyazásához. Mindkét szintaxis érvényes.Feljegyzés
A betanítás során a régebbi szintaxis és a Gyűjtemény kifejezés szintaxisának kombinációja jelenhet meg.
Győződjön meg arról, hogy a kód megfelel a következő példának:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Szánjon egy percet a nyilatkozat megvizsgálására.
Figyelje meg, hogy ez a szintaxis tömör és könnyen olvasható. Az alkalmazás futtatásakor a kimenetnek nem szabad megváltoznia.
A Visual Studio Code File menüben válassza a Mentés lehetőséget.
Explorer nézetben nyissa meg a Terminált a TestProject mappa helyén, kattintson a jobb gombbal a TestProject elemre, majd válassza a Megnyitás az integrált terminálban lehetőséget.
Írja be
dotnet runa terminál parancssorába, majd nyomja le az Enter billentyűt.Ugyanazt az üzenetet kell látnia, mint korábban:
First: A123 Second: B456 Third: C789 Reassign First: F000
Tömb Hossz tulajdonságának használata
A tömb létrehozási módjától függően lehetséges, hogy nem tudható előre, hány elemet tartalmaz a tömb. Egy tömb méretének meghatározására a Length tulajdonság használható.
Feljegyzés
Egy Length tömb tulajdonsága nem nulla alapú.
A kódfájl végén adja meg a következő kódot a hamis megrendelések számának jelentéséhez:
Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Ez a kód a tömb tulajdonságát
Length, egy egész számot használ a tömb elemeinekfraudulentOrderIDsszámának visszaadásához.Győződjön meg arról, hogy a kód megfelel a példának:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Mentse a Program.cs fájl módosításait, majd futtassa az alkalmazást.
A következő kimenetnek kell megjelennie:
First: A123 Second: B456 Third: C789 Reassign First: F000 There are 3 fraudulent orders to process.
Összefoglalás
A tömbök használatakor az alábbi legfontosabb tudnivalókat kell megjegyeznie:
- A tömb egy speciális változó, amely a kapcsolódó adatelemek gyűjteményét tartalmazza.
- Érdemes megjegyezni a tömbváltozó deklarációjának alapformátumát.
- A tömb egyes elemei szögletes zárójelek közé írt, nullával kezdődő indexszel érhetők el az értékadáshoz vagy kiolvasáshoz.
- Ha a tömb határain kívül próbál hozzáférni egy indexhez, a futtatási idő kivételt kap.
- A
Lengthtulajdonsággal a programon belül megállapítható egy tömb elemeinek száma.
Tesztelje tudását
Visszajelzés
Hasznosnak találta ezt az oldalt?
No
Segítségre van szüksége ezzel a témakörrel kapcsolatban?
Szeretné kipróbálni az Ask Learn használatát a témakör tisztázásához vagy áttekintéséhez?