 |
 |
Arrays
|
Gli Arrays di C# sono tipi di riferimento. Il formato dell'Array non fa parte del tipo di Array
|
|
I casi di Array sono generati usando la nuova parola chiave. Gli elementi di Array sono difetto inizializzati a zero (enums e tipi numerici), falsi (bool), o alla posizione di segnale minimo (tipi di riferimento).
|
row = new int[42];
grid = new int[9,6];
|
|
I casi di Array possono essere inizializzati:
|
int[] row = new int[4]{ 1, 2, 3, 4 }; // longhand
int[] row = { 1, 2, 3, 4 }; // shorthand
row = new int[4]{ 1, 2, 3, 4 }; // okay
row = { 1, 2, 3, 4 }; // compile time error
|
|
Gli indici di Array cominciano a zero e tutti gli accessi di Array sono limiti controllati (IndexOutOfRangeException). Tutti gli Arrays ereditano implicitamente dal codice categoria di System.Array. Questo codice categoria introduce i tipi di Array nel CLR e fornisce alcuni propriet� e metodi pratici:
|
namespace System
{
public abstract class Array : . ..
{
...
public int Length { get { ... } }
public int Rank { get { ... } }
public int GetLength(int rank) { ... }
public virutal IEnumerator GetEnumerator() { ... }
...
}
}
|
|
Che cosa sono Arrays dentellati in C#?
|
Un tipo speciale di Array � introdotto in C#. Un Array dentellato � un Array di un Array in cui la lunghezza di ogni indice di Array pu� differire da.
|
Esempio: Un Array dentellato pu� essere usato � di generare una tabella in cui le lunghezze delle file non sono stesse. Questo Array � dichiarato per mezzo delle parentesi ([]) per indicare ogni dimensione.
|
Il seguente codice dimostra la creazione di un Array dentellato bidimensionale.
|
Class Jagged
{
public static void Main()
{
int [][] jagged=new int [3][];
jagged[0]=mew int[4]
jagged[1]=mew int[3]
jagged[2]=mew int[5]
int I;
�Storing values in first array
for (I=0;I<4;I++)
jagged[0][I]=I;
�Storing values in second array
for( I=0;I<3;I++)
jagged[1][I]=I;
�Storing values in third array
for(I=0;I<5;I++)
jagged[2][I]=I;
�Displaying values from first array
for (I=0;I<4;I++)
Console.WriteLine(jagged[0][I])
�Displaying values from second array
for (I=0;I<3;I++)
Console.WriteLine(jagged[1][I])
�Displaying values from third array
for(I=0;I<5;I++)
Console.WriteLine(jagged[2][I])
}
}
|
|
Il tipo dell'elemento di Array si inscatola � un Array che genera un cosiddetto Array �ragged�. Gli Arrays Ragged non sono CLS compliant. Possiamo usare una dichiarazione del foreach per ripetere con un Array ragged o con un Array rettangolare di qualunque Rank:
|
class ArrayIteration
{
static void Main()
{
int[] row = { 1, 2, 3, 4 };
foreach (int number in row) {
...
}
int[,] grid = { { 1, 2 }, { 3, 4 } };
foreach (int number in grid) {
...
}
int[][] ragged =
{ new int[2]{1,2}, new int[4]{3,4,5,6} };
foreach (int[] array in ragged) {
foreach (int number in array) {
...
}
}
}
}
|
|
 |
 |
Keywords c# passing arrays, c# multidimensional, c# two dimensional array, c# multi dimensional arrays,
c# multidimensional array, c# array, array in c#, c# string array, arrays c#, arrays in c#,
byte array c#, string array in c#, c# dynamic array, c# char array, string to byte array c#,
c# array sort, c# array, c# declare array, c# array declaration, c# initialize array,
array to string c#, c# convert byte array
|