 |
 |
Rangées
|
Les rangées de C# sont des types de référence. La taille de la rangée n'est pas une partie du type de rangée
|
|
Des exemples de rangée sont créés en utilisant le nouveau mot-clé. Les éléments de rangée sont défaut initialisés à zéro (des enums et des types numériques), faux (bool), ou à nulle (types de référence).
|
row = new int[42];
grid = new int[9,6];
|
|
Des exemples de rangée peuvent être initialisés :
|
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
|
|
Les index de rangée commencent zéro et tous les accès de rangée sont des limites vérifiées (IndexOutOfRangeException). Toutes les rangées héritent implicitement de la classe de System.Array. Cette classe introduit des types de rangée dans le CLR et fournit quelques propriétés et méthodes maniables :
|
namespace System
{
public abstract class Array : . ..
{
...
public int Length { get { ... } }
public int Rank { get { ... } }
public int GetLength(int rank) { ... }
public virutal IEnumerator GetEnumerator() { ... }
...
}
}
|
|
Quelles sont des rangées déchiquetées dans C# ?
|
Un type spécial de rangée est présenté dans C#. Une rangée déchiquetée est un choix d'une rangée dans laquelle la longueur de chaque index de rangée peut différer.
|
Exemple : Une rangée déchiquetée peut être employée est de créer une table en laquelle les longueurs des rangées ne sont pas mêmes. Cette rangée est déclarée à l'aide des crochets ([]) pour indiquer chaque dimension.
|
Le code suivant démontre la création d'une rangée déchiquetée bidimensionnelle.
|
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])
}
}
|
|
Le type d'élément d'une rangée se met en boîte soit une rangée créant une prétendue rangée « loqueteuse ». Les rangées loqueteuses ne sont pas CLS conformes. Nous pouvons employer un rapport de foreach pour réitérer par une rangée loqueteuse ou par un choix rectangulaire de n'importe quel rang :
|
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
|