Cos'è System.Array in C#

Cos E System Array In C



C# supporta l'uso di matrici come struttura dati, che ci consente di archiviare una raccolta di elementi dello stesso tipo in un ordine sequenziale di dimensioni fisse. Tutte le proprietà dell'array in C# derivano da System.Array class, che funge da classe base per i tipi di array.

Poiché si tratta di una classe base astratta, non è possibile creare direttamente un'istanza della classe System.Array. Invece, possiamo creare istanze di una delle classi derivate da System.Array. Tutti i tipi di array in C# sono basati su System.Array.

Oltre alle matrici unidimensionali, C# dispone anche di matrici multidimensionali e matrici frastagliate. Un array multidimensionale ha dimensioni multiple o maggiori di una. In una matrice frastagliata, ogni elemento può essere una matrice di dimensioni diverse. In parole semplici, un array frastagliato è un array di array.







A cosa serve la classe System.Array

La classe System.Array fornisce vari metodi e proprietà per manipolare le matrici in C#. Questi metodi ci consentono di leggere e modificare i valori memorizzati in un array, ottenere informazioni sulla dimensione e la forma di un array e cercare elementi in un array.



Alcuni metodi comuni includono GetValue(), SetValue(), GetLength() e IndexOf(). IL System.Array class ci consente anche di ordinare, cercare e manipolare diversi array.



Ad esempio, per ottenere la lunghezza dell'array, il file Proprietà lunghezza si usa. IL Proprietà di rango può restituire le dimensioni totali presenti in un array. IL Proprietà GetLength fornisce la lunghezza di una dimensione specifica in un array multidimensionale.





Metodi e proprietà in System.Array C#

Di seguito sono riportati alcuni metodi e proprietà utilizzati in System.Array C#:

Chiaro(): Questo è un metodo disponibile al pubblico e accessibile da qualsiasi parte del codice. Questo metodo può impostare un particolare intervallo di elementi all'interno di una matrice su riferimento nullo o zero.



Copia(): Si tratta di un metodo condiviso pubblico che può essere sottoposto a overload e utilizzato per copiare una sezione specifica di elementi da un array a un altro array.

Ottieni lunghezza(): Restituisce un numero intero a 32 bit che mostra gli elementi totali in una particolare dimensione di un array.

OttieniLunghezza(): Questo metodo restituisce un numero intero a 64 bit, che ci fornisce gli elementi totali in una dimensione specifica dell'array.

GetLowerBound(): Questo metodo recupera il limite inferiore di una particolare dimensione della matrice, a partire dall'indice 0.

GetUpperBound(): Questo metodo recupera il limite superiore di una dimensione specificata della matrice, a partire dall'indice 0.

OttieniValore(): Questo metodo recupera il valore di un elemento specifico nell'array, a partire dall'indice 1.

Indice di(): Si tratta di un metodo pubblico condiviso che può essere sottoposto a overload per restituire l'indice o l'offset della prima occorrenza di un determinato valore in una matrice unidimensionale.

IsFixedSize(): Questo metodo indica se un array ha una dimensione fissa o meno.

IsReadOnly(): Il metodo fornisce un valore che indica se un array è di sola lettura o meno.

LastIndexOf(): Questo è un metodo condiviso pubblico che può essere sottoposto a overload. Fornisce l'indice dell'ultima occorrenza di un valore in un array unidimensionale.

Lunghezza(): Questo metodo fornisce la lunghezza degli array. È di proprietà pubblica e restituisce un valore intero a 32 bit.

LongLength(): Questo metodo indica gli elementi in tutte le dimensioni dell'array. Restituisce un valore intero a 64 bit.

Rango(): Questo metodo restituisce il numero di dimensioni dell'array.

Ridimensiona(): Questo metodo ridimensiona una matrice al numero specificato di elementi.

Inversione(): Questo metodo può invertire l'ordine degli elementi in una matrice unidimensionale.

Ordinare(): Questo metodo dispone gli elementi in una matrice unidimensionale in ordine crescente o decrescente a seconda dei relativi valori.

Esempio Codice

Il codice seguente inizializza un array di numeri interi e ne illustra vari System.Array metodi che possono essere usati con le matrici in C#. L'output di ciascun metodo viene visualizzato separatamente sulla console.

usando Sistema ;
programma di classe
{
statico vuoto Principale ( corda [ ] arg )
{
// Inizializza un array di numeri interi
int [ ] numeri = { 1 , 2 , 3 , 4 , 5 } ;


// Cancella il contenuto dell'array

Vettore. Chiaro ( numeri , 0 , numeri. Lunghezza ) ;

Consolle. Linea di scrittura ( 'Array dopo la cancellazione:' ) ;

per ( int io = 0 ; io < numeri. Lunghezza ; io ++ )

{

Consolle. Scrivere ( numeri [ io ] + ' ' ) ;

}

Consolle. Linea di scrittura ( ) ;

// Copia il contenuto di un altro array in nums

int [ ] numsCopy = { 7 , 8 , 9 } ;

Vettore. copia ( numsCopy , numeri , numsCopy. Lunghezza ) ;

Consolle. Linea di scrittura ( 'Array dopo la copia:' ) ;

per ( int io = 0 ; io < numeri. Lunghezza ; io ++ )

{

Consolle. Scrivere ( numeri [ io ] + ' ' ) ;

}

Consolle. Linea di scrittura ( ) ;

// Ottieni la lunghezza e la lunghezza lunga dell'array

int lunghezza = numeri. Ottieni lunghezza ( 0 ) ;

lungo longLunghezza = numeri. OttieniLunghezza ( 0 ) ;

Consolle. Linea di scrittura ( 'Lunghezza dell'array: ' + lunghezza ) ;

Consolle. Linea di scrittura ( 'Lunghezza dell'array: ' + longLunghezza ) ;

// Ottieni i limiti inferiore e superiore dell'array

int limite inferiore = numeri. GetLowerBound ( 0 ) ;

int limite superiore = numeri. GetUpperBound ( 0 ) ;

Consolle. Linea di scrittura ( 'Limite inferiore dell'array: ' + limite inferiore ) ;

Consolle. Linea di scrittura ( 'Limite superiore dell'array: ' + limite superiore ) ;

// Ottiene il valore in un indice specifico nell'array

int valoreAtIndice = ( int ) numeri. OttieniValore ( 1 ) ;

Consolle. Linea di scrittura ( 'Valore all'indice 1: ' + valoreAtIndice ) ;

// Trova l'indice di un valore specifico nell'array

int indexOfValue = Vettore. Indice di ( numeri , 9 ) ;

Consolle. Linea di scrittura ( 'Indice di valore 9: ' + indexOfValue ) ;

// Controlla se l'array è di dimensioni fisse e di sola lettura

bool isFixedSize = numeri. IsFixedSize ;

bool è di sola lettura = numeri. È di sola lettura ;

Consolle. Linea di scrittura ( 'La dimensione è fissa?' + isFixedSize ) ;

Consolle. Linea di scrittura ( 'È di sola lettura?' + è di sola lettura ) ;

// Trova l'ultimo indice di un valore specifico nell'array

int lastIndexOfValue = Vettore. LastIndexOf ( numeri , 9 ) ;

Consolle. Linea di scrittura ( 'Ultimo indice di valore 9: ' + lastIndexOfValue ) ;

// Ottieni la lunghezza dell'array

int lengthAgain = numeri. Lunghezza ;

Consolle. Linea di scrittura ( 'Ancora la lunghezza dell'array: ' + lengthAgain ) ;

// Ottieni il rango dell'array

int rango = numeri. Rango ;

Consolle. Linea di scrittura ( 'Rango dell'array: ' + rango ) ;

// Ridimensiona l'array

Vettore. Ridimensiona ( numeri di riferimento , 10 ) ;



// Inverte il contenuto dell'array

Vettore. Inversione ( numeri ) ;

Consolle. Linea di scrittura ( 'Array dopo l'inversione:' ) ;

per ( int io = 0 ; io < numeri. Lunghezza ; io ++ )

{

Consolle. Scrivere ( numeri [ io ] + ' ' ) ;

}

Consolle. Linea di scrittura ( ) ;



// Ordina il contenuto dell'array

Vettore. Ordinare ( numeri ) ;

Consolle. Linea di scrittura ( 'Array dopo l'ordinamento:' ) ;

per ( int io = 0 ; io < numeri. Lunghezza ; io ++ )

{

Consolle. Scrivere ( numeri [ io ] + ' ' ) ;

}

}

}

Produzione

Conclusione

La classe System.Array in C# fornisce una base per lavorare con matrici di tutti i tipi. Sia che sia necessario creare un semplice array unidimensionale o un complesso array multidimensionale, la classe System.Array fornisce diversi metodi per manipolare e lavorare con i dati in modo efficace. Per una descrizione dettagliata di System.Array in C# leggi l'articolo.