Exerciții - Introducere în noțiunile de bază despre matrice
- 19 minute
Matricele pot fi utilizate pentru a stoca mai multe valori de același tip într-o singură variabilă. Valorile stocate într-o matrice sunt, în general, asociate. De exemplu, o listă de nume de elevi/studenți ar putea fi stocată într-o matrice de șir denumită students.
Munca dvs. în departamentul de securitate se concentrează pe găsirea unui model pentru comenzi frauduloase. Doriți ca codul să revizuiască comenzile clienților din trecut și să identifice marcatorii asociați cu comenzile frauduloase. Firma dvs. speră că marcatorii pot fi utilizați pentru a identifica comenzile de achiziție potențial frauduloase în viitor înainte de a fi procesate. Deoarece nu știți întotdeauna dinainte câte comenzi trebuie să revizuiți, nu puteți crea variabile individuale pentru a păstra fiecare ID comandă. Cum puteți crea o structură de date pentru a păstra mai multe valori asociate?
În acest exercițiu, utilizați matrice pentru a stoca și a analiza o colecție de ID-uri comandă.
Ce este o matrice?
O matrice este o colecție de elemente de date individuale accesibile printr-un singur nume de variabilă. Utilizați un index numeric bazat pe zero pentru a accesa fiecare element al unei matrice. Matricele vă permit să creați o colecție de valori de date care partajează un scop comun sau caracteristici sub un singur nume de variabilă, pentru o procesare mai ușoară.
Declararea matricelor și accesarea elementelor matrice
O matrice este un tip special de variabilă care poate conține mai multe valori de același tip de date. Sintaxa declarației este ușor diferită pentru o matrice, deoarece trebuie să specificați atât tipul de date, cât și dimensiunea matricei.
Pregătește-ți mediul de codare
Acest modul include activități care vă ghidează în procesul de creare și rulare a codului eșantion. Sunteți încurajat să finalizați aceste activități utilizând Visual Studio Code ca mediu de dezvoltare. Utilizarea Codului Visual Studio pentru aceste activități vă ajută să deveniți mai confortabil să scrieți și să rulați cod într-un mediu de dezvoltator utilizat de profesioniști din întreaga lume.
Deschideți Visual Studio Code.
Puteți utiliza meniul Start Windows (sau resursa echivalentă pentru un alt sistem de operare) pentru a deschide Visual Studio Code.
În meniul Fișier Visual Studio Code, selectați Deschidere folder.
În caseta de dialog Deschidere folder, navigați la folderul Desktop Windows.
Dacă aveți o altă locație de folder în care păstrați proiectele de cod, puteți utiliza acea locație de folder în schimb. Pentru această instruire, lucrul important este să aveți o locație ușor de găsit și de reținut.
În caseta de dialog Deschidere folder, selectați Selectare folder.
Dacă vedeți o casetă de dialog de securitate care vă întreabă dacă aveți încredere în autori, selectați Da.
În meniul Terminal Visual Studio Code, selectați Terminal nou .
Observați că o linie de comandă din panoul Terminal afișează calea folderului pentru folderul curent. De exemplu:
C:\Users\someuser\Desktop>Notă
Dacă lucrați pe propriul PC, nu într-un sandbox sau într-un mediu găzduit și ați finalizat alte module Microsoft Learn din această serie C#, este posibil să fi creat deja un folder de proiect pentru eșantioane de cod. În acest caz, puteți trece peste pasul următor, care este utilizat pentru a crea o aplicație consolă în folderul TestProject.
În linia de comandă Terminal, pentru a crea o aplicație consolă nouă într-un folder specificat, introduceți următoarea solicitare:
dotnet new console -o ./CsharpProjects/TestProjectAceastă comandă .NET CLI utilizează un șablon de program .NET pentru a crea un nou proiect de aplicație consolă C# în locația de folder specificată. Comanda creează folderele CsharpProjects și TestProject pentru dvs. și utilizează TestProject ca nume al fișierului
.csproj.Dacă se afișează un mesaj care vă spune că fișierele există deja, continuați cu pașii următori. Veți reutiliza fișierele de proiect existente.
În vizualizarea EXPLORER, extindeți folderul CsharpProjects .
Ar trebui să vedeți folderul TestProject și două fișiere, un fișier program C# denumit Program.cs și un fișier de proiect C# numit TestProject.csproj.
În meniul Fișier Visual Studio Code, selectați Deschidere folder.
În caseta de dialog Deschidere folder , selectați folderul CsharpProjects , apoi selectați Selectare folder.
În vizualizarea EXPLORER, extindeți folderul TestProject, apoi selectați Program.cs.
Ștergeți liniile de cod existente.
Veți utiliza acest proiect de consolă C# pentru a crea, a construi și a rula eșantioane de cod în timpul acestui modul.
Închideți panoul Terminal.
Declararea unei matrice noi
Pentru a declara o matrice nouă de șiruri care pot conține trei elemente, introduceți următorul cod:
string[] fraudulentOrderIDs = new string[3];Luați un minut pentru a examina codul.
Operatorul
newcreează o nouă instanță a unei matrice în memoria computerului, care poate conține trei valori șir. Pentru mai multe informații desprenewcuvântul cheie, consultați modulul "Metode de apelare din Biblioteca de clase .NET utilizând C#".Observați că primul set de paranteze drepte
[]spune pur și simplu compilatorului că variabila numităfraudulentOrderIDseste o matrice, dar al doilea set de paranteze drepte[3]indică numărul de elemente pe care le poate reține matricea.Notă
Acest exemplu vă arată cum să declarați o matrice de șiruri, însă puteți crea o matrice cu fiecare tip de date, inclusiv pe cele primitive,
intprecum șibooltipuri de date mai complexe, cum ar fi clasele. Acest exemplu utilizează simplitatea șirurilor pentru a minimiza numărul de idei noi pe care trebuie să le înțelegeți pe măsură ce începeți.
Atribuirea valorilor la elementele unei matrice
În acest moment, ați declarat o matrice de șiruri, dar fiecare element din matrice este gol. Pentru a accesa un element dintr-o matrice, utilizați un index numeric bazat pe zero în interiorul parantezelor drepte. Puteți atribui o valoare unui element matrice utilizându-l = ca și cum ar fi o variabilă obișnuită.
Pentru a atribui valori ID comandă matricei
fraudulentOrderIDs, actualizați codul după cum urmează:string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789";Luați un minut pentru a examina codul.
Observați că utilizați numele matricei pentru a accesa elementele matricei. Fiecare element este accesat individual, specificând numărul indexului bazat pe zero în interiorul parantezelor drepte.
Deoarece matricea este declarată ca șir, valorile pe care le atribuiți trebuie să fie șiruri. În acest scenariu, atribuiți ID-uri de comandă elementelor matricei.
Încercare de utilizare a unui index care este în afara limitelor matricei
Poate că nu pare intuitiv la început, dar este important să rețineți că declarați numărul de elemente din matrice. Cu toate acestea, accesați fiecare element al matricei începând cu zero. Așadar, pentru a accesa al doilea element din matrice, utilizați indexul 1.
Este obișnuit ca începătorii să uite că matricele sunt bazate pe zero și încearcă să acceseze un element din matrice care nu există. Dacă faceți această greșeală, apare o excepție la momentul rulării care vă informează că ați încercat să accesați un element care se află în afara limitei matricei.
Pentru a "întrerupe" intenționat aplicația, încercați să accesați un al patrulea element din matrice utilizând valoarea index a 3.
În partea de jos a fișierului de cod, introduceți următoarea linie de cod:
fraudulentOrderIDs[3] = "D000";Asigurați-vă că codul se potrivește cu acest exemplu:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; fraudulentOrderIDs[3] = "D000";În meniul Fișier Visual Studio Code, selectați Salvare.
În vizualizarea EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în Terminal integrat.
Un panou terminal ar trebui să se deschidă și ar trebui să includă o linie de comandă care arată că Terminal este deschis la locația folderului TestProject .
În linia de comandă Terminal, pentru a compila codul, tastați
dotnet build, apoi apăsați pe Enter.Ar trebui să vedeți următorul mesaj:
Build succeeded. 0 Warning(s) 0 Error(s)În linia de comandă Terminal, pentru a rula codul, tastați
dotnet runapoi apăsați pe Enter.Atunci când rulați aplicația, primiți următorul mesaj de eroare la momentul rulării:
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 6Observați următoarele părți ale erorii:
- Mesaj de eroare:
System.IndexOutOfRangeException: Index was outside the bounds of the array. - Locație eroare:
Program.cs:line 6
- Mesaj de eroare:
Comentați linia care a generat eroarea la momentul rulării.
// fraudulentOrderIDs[3] = "D000";
Ați văzut cum să atribuiți o valoare unui element matrice. Acum uitați-vă cum să accesați o valoare stocată într-un element matrice.
Regăsire valori din elementele unei matrice
Accesarea valorii unui element matrice funcționează la fel ca atribuirea unei valori unui element matrice. Specificați doar indexul elementului a cărui valoare doriți să o regăsiți.
Pentru a scrie valoarea fiecărui ID de comandă frauduloas, actualizați codul după cum urmează:
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]}");În meniul Fișier Visual Studio Code, selectați Salvare.
În vizualizarea EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în Terminal integrat.
În linia de comandă Terminal, tastați
dotnet run, apoi apăsați pe Enter.Ar trebui să vedeți următorul mesaj:
First: A123 Second: B456 Third: C789
Reatribuirea valorii unei matrice
Elementele unei matrice sunt la fel ca orice altă valoare variabilă. Puteți să atribuiți, să regăsiți și să reatribuiți o valoare fiecărui element din matrice.
La sfârșitul fișierului de cod, pentru a reatribui și a imprima valoarea primului element matrice, introduceți următorul cod:
fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Asigurați-vă că codul se potrivește cu următorul exemplu:
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]}");În meniul Fișier Visual Studio Code, selectați Salvare.
În vizualizarea EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în Terminal integrat.
În linia de comandă Terminal, tastați
dotnet run, apoi apăsați pe Enter.Ar trebui să vedeți următorul mesaj:
First: A123 Second: B456 Third: C789 Reassign First: F000
Inițializarea unei matrice
Puteți inițializa o matrice în timpul declarației la fel cum procedați cu o variabilă obișnuită.
Comentați liniile în care declarați variabila
fraudulentOrderIDs.Aveți posibilitatea să utilizați un comentariu cu mai multe linii (
/* ... */) pentru a comenta declarația șifraudulentOrderIDsliniile utilizate pentru a atribui valori elementelor matrice.Pentru a declara matricea și a inițializa valorile într-o singură instrucțiune, introduceți următorul cod:
string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ];Acest exemplu folosește sintaxa expresiei Collection , introdusă în C# 12 și suportată în .NET 10.
De asemenea, este posibil să vedeți o sintaxă mai veche utilizată pentru a inițializa o matrice.
string[] fraudulentOrderIDs = { "A123", "B456", "C789" };Observați că această sintaxă mai veche utilizează acolade
{}pentru a încadra valorile matricei. Ambele sintaxe sunt valide.Notă
Este posibil să vedeți o combinație între sintaxa mai veche și sintaxa de expresie Colecție utilizată în această instruire.
Asigurați-vă că codul se potrivește cu următorul exemplu:
/* 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]}");Luați un minut pentru a examina declarația.
Observați că această sintaxă este atât compactă, cât și ușor de citit. Atunci când rulați aplicația, nu ar trebui să existe nicio modificare la ieșire.
În meniul Fișier Visual Studio Code, selectați Salvare.
În vizualizarea EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în Terminal integrat.
În linia de comandă Terminal, tastați
dotnet run, apoi apăsați pe Enter.Ar trebui să vedeți același mesaj ca înainte:
First: A123 Second: B456 Third: C789 Reassign First: F000
Utilizarea proprietății Lungime a unei matrice
În funcție de modul în care este creată matricea, este posibil să nu știți dinainte câte elemente conține o matrice. Pentru a determina dimensiunea unei matrice, puteți utiliza Length proprietatea.
Notă
Proprietatea Length unei matrice nu este bazată pe zero.
La sfârșitul fișierului de cod, pentru a raporta numărul de comenzi frauduloase, introduceți următorul cod:
Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Acest cod utilizează proprietatea matricei
Length, un număr întreg, pentru a returna numărul de elemente dinfraudulentOrderIDsmatrice.Asigurați-vă că codul se potrivește cu acest exemplu:
/* 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.");Salvați modificările din fișierul Program.cs , apoi rulați aplicația.
Ar trebui să vedeți următoarea ieșire:
First: A123 Second: B456 Third: C789 Reassign First: F000 There are 3 fraudulent orders to process.
Recapitula
Iată cele mai importante lucruri de reținut atunci când lucrați cu matrice:
- O matrice este o variabilă specială care conține o colecție de elemente de date asociate.
- Ar trebui să memorați formatul de bază al unei declarații variabile matrice.
- Accesați fiecare element dintr-o matrice pentru a seta sau a obține valorile utilizând un index bazat pe zero în interiorul parantezelor drepte.
- Dacă încercați să accesați un index în afara limitei matricei, obțineți o excepție la momentul rulării.
- Proprietatea
Lengthvă oferă o modalitate programatică de a determina numărul de elemente dintr-o matrice.
Verificați-vă cunoștințele
Feedback
Această pagină a fost utilă?
Nu
Aveți nevoie de ajutor cu acest subiect?
Doriți să încercați să utilizați Întrebați Microsoft Learn pentru a clarifica sau primi îndrumări privind acest subiect?