Deoarece este o clasă de bază abstractă, crearea directă a unei instanțe a clasei System.Array nu este posibilă. În schimb, putem crea instanțe ale uneia dintre clasele derivate din System.Array. Toate tipurile de matrice în C# se bazează pe System.Array.
Pe lângă matricele unidimensionale, C# are și matrice multidimensionale și matrice zimțate. O matrice multidimensională are dimensiuni multiple sau mai mari decât o dimensiune. Într-o matrice zimțată, fiecare element poate fi o matrice de dimensiuni diferite. Cu cuvinte simple, o matrice zimțată este o matrice de matrice.
Pentru ce este folosită clasa System.Array
Clasa System.Array oferă diverse metode și proprietăți pentru a manipula matrice în C#. Aceste metode ne permit să citim și să modificăm valorile stocate într-o matrice, să obținem informații despre dimensiunea și forma unei matrice și să căutăm elemente dintr-o matrice.
Unele metode comune includ GetValue(), SetValue(), GetLength() și IndexOf(). The Sistem.Matrice clasa ne permite, de asemenea, să sortăm, să căutăm și să manipulăm diferite matrice.
De exemplu, pentru a obține lungimea matricei, Proprietatea lungimii este folosit. The Proprietatea rangului poate returna dimensiunile totale prezente într-o matrice. The Proprietatea GetLength oferă lungimea unei dimensiuni specifice într-o matrice multidimensională.
Metode și proprietăți în System.Array C#
Iată câteva metode și proprietăți utilizate în System.Array C#:
Clar(): Aceasta este o metodă care este disponibilă publicului și poate fi accesată din orice parte a codului. Această metodă poate seta un anumit interval de elemente dintr-o matrice la referință nulă sau zero.
Copie(): Aceasta este o metodă publică partajată care poate fi supraîncărcată și utilizată pentru a copia o anumită secțiune de elemente dintr-o matrice în alta.
GetLength(): Returnează un număr întreg de 32 de biți care arată elementele totale dintr-o anumită dimensiune a unui tablou.
GetLongLength(): Această metodă returnează un număr întreg de 64 de biți, care ne oferă elementele totale într-o anumită dimensiune a matricei.
GetLowerBound(): Această metodă preia limita inferioară a unei anumite dimensiuni a matricei, începând cu indicele 0.
GetUpperBound(): Această metodă preia limita superioară a unei dimensiuni specificate a matricei, începând cu indicele 0.
GetValue(): Această metodă preia valoarea unui anumit element din matrice, începând cu indexul 1.
Index de(): Aceasta este o metodă publică partajată care poate fi supraîncărcată pentru a returna indexul sau offset-ul primei apariții a unei anumite valori într-o matrice unidimensională.
IsFixedSize(): Această metodă spune dacă o matrice are o dimensiune fixă sau nu.
IsReadOnly(): Metoda oferă o valoare care indică dacă o matrice este doar pentru citire sau nu.
LastIndexOf(): Aceasta este o metodă publică partajată care poate fi supraîncărcată. Oferă indexul ultimei apariții a unei valori într-o matrice unidimensională.
Lungime(): Această metodă oferă lungimea tablourilor. Este proprietate publică și emite o valoare întreagă de 32 de biți.
Lung lungime(): Această metodă indică elemente în toate dimensiunile matricei. Returnează o valoare întreagă de 64 de biți.
Rang(): Această metodă returnează numărul de dimensiuni pe care le are matricea.
Redimensionare(): Această metodă redimensionează o matrice la numărul specificat de elemente.
Verso(): Această metodă poate inversa ordinea elementelor într-o matrice unidimensională.
Fel(): Această metodă aranjează elementele într-o matrice unidimensională în ordine crescătoare sau descrescătoare în funcție de valorile lor.
Exemplu de cod
Codul de mai jos inițializează o matrice de numere întregi și demonstrează diverse Sistem.Matrice metode care pot fi utilizate cu matrice în C#. Ieșirea fiecărei metode este afișată separat pe consolă.
folosind System ;Programul clasei
{
static gol Principal ( şir [ ] argumente )
{
// Inițializați o matrice de numere întregi
int [ ] numere = { 1 , 2 , 3 , 4 , 5 } ;
// Ștergeți conținutul matricei
Matrice. clar ( numere , 0 , numere. Lungime ) ;
Consolă. WriteLine ( „Matrice după ștergere:” ) ;
pentru ( int i = 0 ; i < numere. Lungime ; i ++ )
{
Consolă. Scrie ( numere [ i ] + ' ' ) ;
}
Consolă. WriteLine ( ) ;
// Copiați conținutul altei matrice în numere
int [ ] numsCopy = { 7 , 8 , 9 } ;
Matrice. Copie ( numsCopy , numere , numsCopy. Lungime ) ;
Consolă. WriteLine ( „Matrice după copiere:” ) ;
pentru ( int i = 0 ; i < numere. Lungime ; i ++ )
{
Consolă. Scrie ( numere [ i ] + ' ' ) ;
}
Consolă. WriteLine ( ) ;
// Obține lungimea și lungimea lungă a matricei
int lungime = numere. GetLength ( 0 ) ;
lung lung lungime = numere. GetLongLength ( 0 ) ;
Consolă. WriteLine ( 'Lungimea matricei: ' + lungime ) ;
Consolă. WriteLine ( 'Lungimea mare a matricei: ' + lung lungime ) ;
// Obține limitele inferioare și superioare ale matricei
int limita inferioară = numere. GetLowerBound ( 0 ) ;
int limită superioară = numere. GetUpperBound ( 0 ) ;
Consolă. WriteLine ( 'Liga inferioară a matricei: ' + limita inferioară ) ;
Consolă. WriteLine ( „Liga superioară a matricei:” + limită superioară ) ;
// Obține valoarea la un index specific din matrice
int valueAtIndex = ( int ) numere. GetValue ( 1 ) ;
Consolă. WriteLine ( „Valoare la indicele 1:” + valueAtIndex ) ;
// Găsiți indexul unei anumite valori în matrice
int indexOfValue = Matrice. Index de ( numere , 9 ) ;
Consolă. WriteLine ( „Indexul valorii 9:” + indexOfValue ) ;
// Verificați dacă matricea are dimensiune fixă și este doar pentru citire
bool isFixedSize = numere. IsFixedSize ;
bool isReadOnly = numere. IsReadOnly ;
Consolă. WriteLine ( „Este dimensiunea fixă?” + esteFixedSize ) ;
Consolă. WriteLine ( „Este doar citire?” + esteReadOnly ) ;
// Găsiți ultimul index al unei anumite valori din matrice
int lastIndexOfValue = Matrice. LastIndexOf ( numere , 9 ) ;
Consolă. WriteLine ( „Ultimul indice al valorii 9:” + lastIndexOfValue ) ;
// Obține lungimea matricei
int lungime Din nou = numere. Lungime ;
Consolă. WriteLine ( 'Lungimea matricei din nou: ' + lungime Din nou ) ;
// Obține rangul matricei
int rang = numere. Rang ;
Consolă. WriteLine ( 'Rangul matricei: ' + rang ) ;
// Redimensionați matricea
Matrice. Redimensionați ( numere de ref , 10 ) ;
// Inversează conținutul matricei
Matrice. Verso ( numere ) ;
Consolă. WriteLine ( „Matrice după inversare:” ) ;
pentru ( int i = 0 ; i < numere. Lungime ; i ++ )
{
Consolă. Scrie ( numere [ i ] + ' ' ) ;
}
Consolă. WriteLine ( ) ;
// Sortează conținutul matricei
Matrice. Fel ( numere ) ;
Consolă. WriteLine ( „Matrice după sortare:” ) ;
pentru ( int i = 0 ; i < numere. Lungime ; i ++ )
{
Consolă. Scrie ( numere [ i ] + ' ' ) ;
}
}
}
Ieșire
Concluzie
Clasa System.Array în C# oferă o bază pentru lucrul cu matrice de toate tipurile. Indiferent dacă trebuie să creăm o matrice unidimensională simplă sau o matrice multidimensională complexă, clasa System.Array oferă diferite metode de manipulare și lucru eficient cu datele. Pentru o descriere detaliată a System.Array în C#, citiți articolul.