TOC

This article has been localized into Romanian by the community.

Colectii:

Tablouri unidimensionale

Tablourile unidimensionale funcționează ca colecții de elemente, de exemplu șiruri. Le puteți folosi pentru a aduna articole într-un singur grup și pentru a efectua diverse operații asupra lor, de ex. sortare. În plus, mai multe metode din cadrul framework-ului funcționează pe matrice, pentru a face posibilă acceptarea unei mulțimi de elemente în loc de doar unul. Acest fapt face ca este important să știți puțin despre tablourile unidimensionale.

Tablourile unidimensionale sunt declarate la fel ca variabilele, cu un set de paranteze [] după tipul de date, astfel:

string[] names;

Trebuie să instanțiați tabloul unidimensional pentru a îl utiliza, în felul urmator:

string[] names = new string[2];

Numărul (2) este dimensiunea tabloului unidimensional, adică cantitatea de articole pe care le putem pune în el. Introducerea elementelor în tabloul unidimensional este, de asemenea, destul de simplă:

names[0] = "John Doe";

Dar de ce 0? Așa cum se întâmplă cu atâtea lucruri din lumea programării, numărarea începe de la 0 în loc de 1. Astfel, primul element este indexat ca 0, următorul ca 1 și așa mai departe. Ar trebui să vă amintiți acest lucru când umpleți tabloul unidimensional cu articole, deoarece supraumplerea acestuia va provoca o excepție. Când vă uitați la inițializator, setând matricea la o dimensiune de 2, ar putea părea firesc să puneți elementul cu numărul 0, 1 și 2 în el, dar acesta va umple tabloul cu un element mai mult. Dacă o faci, va fi aruncată o excepție. Vom discuta despre excepții într-un capitol ulterior.

Mai devreme, am învățat despre bucle și, evident, acestea merg de minune cu tablourile unidimensionale. Cea mai obișnuită modalitate de a extrage date dintr-o matrice este să faci bucla prin ea și să efectuezi un fel de operație cu fiecare valoare. Să folosim tabloul de mai înainte, pentru a face un exemplu real:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    string[] names = new string[2];

    names[0] = "John Doe";
    names[1] = "Jane Doe";

    foreach(string s in names)
Console.WriteLine(s);

    Console.ReadLine();
}
    }
}

Folosim bucla foreach, pentru că este cea mai ușoară, dar bineînțeles că am fi putut folosi unul dintre celelalte tipuri de buclă. Bucla for este bună și cu tablouri unidimensionala, de exemplu, dacă trebuie să numărați fiecare element, astfel:

for(int i = 0; i < names.Length; i++)
    Console.WriteLine("Item number " + i + ": " + names[i]);

Este de fapt foarte simplu. Folosim proprietatea Length a tabloului unidimensional pentru a decide de câte ori trebuie să itereze bucla, apoi folosim contorul (i) pentru a scoate unde ne aflăm în proces, precum și pentru a obține elementul din matrice. La fel cum am folosit un număr, un așa-numit indexator, pentru a pune elemente în matrice, îl putem folosi pentru a scoate din nou un anumit articol.

V-am spus mai devreme că am putea folosi un tablou undimensional pentru a sorta o serie de valori și, de fapt, este foarte ușor. Clasa Array conține o mulțime de metode inteligente pentru lucrul cu tablourile. Acest exemplu va folosi numere în loc de șiruri, doar pentru a încerca altceva, dar ar fi putut la fel de ușor să fie șiruri. Doresc să vă arăt un alt mod de a popula un tablou unidimensional, care este mult mai ușor dacă aveți un set mic, predefinit de elemente pe care doriți să le puneți în tablou. Aruncă o privire:

int[] numbers = new int[5] { 4, 3, 8, 0, 5 };

Cu o singură linie, am creat un tablou unidimensional cu o dimensiune de 5 și am umplut-o cu 5 numere întregi. Prin completarea tabloului astfel, obțineți un avantaj suplimentar, deoarece compilatorul va verifica și se va asigura că nu puneți prea multe elemente în matrice. Încercați să adăugați un număr suplimentar - veți vedea că compilatorul se plânge de el.

De fapt, se poate face și mai scurt, astfel:

int[] numbers = { 4, 3, 8, 0, 5 };

Acesta este scurt și nu trebuie să specificați o dimensiune. Prima abordare poate fi mai ușor de citit mai târziu.

Să încercăm să sortăm matricea - iată un exemplu complet:

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int[] numbers = { 4, 3, 8, 0, 5 };

    Array.Sort(numbers);

    foreach(int i in numbers)
Console.WriteLine(i);

    Console.ReadLine();
}
    }
}

Singurul lucru cu adevărat nou aici este comanda Array.Sort. Poate lua diverși parametri, pentru diferite tipuri de sortare, dar în acest caz, pur și simplu ia tabloul noastru. După cum puteți vedea din rezultat, matricea noastră a fost sortată. Clasa Array are și alte metode, de exemplu metoda Reverse(). Îl puteți căuta în documentație pentru a vedea toate caracteristicile clasei Array.

Tablourile pe care le-am folosit până acum au avut o singură dimensiune. Cu toate acestea, tablourile C# pot fi multidimensionale, uneori denumite tablou în tablou. Tablourile multidimensionale vin în două variante cu C#: tablou dreptunghiular și tablou zimțat. Diferența este că, la tablou dreptunghiular, toate dimensiunile trebuie să aibă aceeași marime, de unde și numele dreptunghiular. O matrice zimțată poate avea dimensiuni de diferite marimi. Tablourile multidimensionale sunt un subiect greu și puțin în afara scopului acestui tutorial.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!