Comment déterminer la taille d'un tableau (longueur/nombre d'éléments) en C #?
Si c'est un tableau à une dimension a
,
a.Length
donnera le nombre d'éléments de a
.
Si b
est un tableau multidimensionnel rectangulaire (par exemple, int[,] b = new int[3, 5];
)
b.Rank
donnera le nombre de dimensions (2) et
b.GetLength(dimensionIndex)
obtiendra la longueur de toute dimension donnée (indexation basée sur 0 pour les dimensions - donc b.GetLength(0)
vaut 3 et b.GetLength(1)
vaut 5).
Voir documentation System.Array pour plus d'informations.
Comme @Lucero le fait remarquer dans les commentaires, il existe un concept de "tableau dentelé", qui n'est en réalité qu'un tableau à une dimension de tableaux (typiquement à une dimension).
Par exemple, on pourrait avoir ce qui suit:
int[][] c = new int[3][];
c[0] = new int[] {1, 2, 3};
c[1] = new int[] {3, 14};
c[2] = new int[] {1, 1, 2, 3, 5, 8, 13};
Notez que les 3 membres de c
ont tous des longueurs différentes. Dans ce cas, comme auparavant, c.Length
Indiquera le nombre d'éléments de c
, (3) et de c[0].Length
, c[1].Length
Et c[2].Length
seront respectivement 3, 2 et 7.
Vous pouvez consulter le documentation pour Array pour trouver la réponse à cette question.
Dans ce cas particulier, vous avez probablement besoin de Length :
int sizeOfArray = array.Length;
Mais comme il s’agit d’une question aussi fondamentale et que vous en avez sans doute beaucoup plus, plutôt que de simplement vous dire la réponse, je préférerais vous dire comment trouver la réponse vous-même.
Visual Studio Intellisense
Lorsque vous tapez le nom d’une variable et appuyez sur la touche .
_ touche vous affiche une liste de toutes les méthodes, propriétés, événements, etc. disponibles sur cet objet. Lorsque vous mettez un membre en surbrillance, il vous donne une brève description de ce qu’il fait.
Appuyez sur F1
Si vous trouvez une méthode ou une propriété qui pourrait faire ce que vous voulez mais que vous n’êtes pas sûr, vous pouvez déplacer le curseur dessus et appuyer sur F1 pour obtenir de l’aide. Ici, vous obtenez une description beaucoup plus détaillée ainsi que des liens vers des informations connexes.
Rechercher
Les termes de recherche size of array in C#
donne de nombreux liens qui vous indiquent la réponse à votre question et bien d’autres choses encore. L'une des compétences les plus importantes qu'un programmeur doit apprendre est la recherche d'informations. Il est souvent plus rapide de trouver la réponse vous-même, surtout si la même question a déjà été posée.
Utiliser un tutoriel
Si vous commencez tout juste à apprendre le C #, il vous sera plus facile de suivre un tutoriel. Je peux recommander le tutoriels C # sur MSDN. Si vous voulez un livre, je recommanderais Essential C # .
Débordement de pile
Si vous ne trouvez pas la réponse vous-même, n'hésitez pas à poster la question sur Stack Overflow. Mais nous vous en remercions si vous montrez que vous avez pris l'effort de trouver la réponse vous-même en premier.
pour un tableau à 1 dimension
int[] listItems = new int[] {2,4,8};
int length = listItems.Length;
pour tableau multidimensionnel
int length = listItems.Rank;
Pour obtenir la taille d'une dimension
int length = listItems.GetLength(0);
Avec la propriété Length
.
int[] foo = new int[10];
int n = foo.Length; // n == 10
yourArray.Length
:)
Pour un tableau de dimension unique, vous utilisez la propriété Length
:
int size = theArray.Length;
Pour les tableaux à plusieurs dimensions, la propriété Length
renvoie le nombre total d'éléments dans le tableau. Vous pouvez utiliser la méthode GetLength
pour obtenir la taille d'une des dimensions:
int size0 = theArray.GetLength(0);
Dans la plupart des cas généraux, on utilise "Longueur" et "Nombre".
Tableau:
int[] myArray = new int[size];
int noOfElements = myArray.Length;
Tableau de liste typé:
List <int> myArray = new List<int>();
int noOfElements = myArray.Count;
ça va comme ça: 1D:
type[] name=new type[size] //or =new type[]{.....elements...}
2D:
type[][]name=new type[size][] //second brackets are emtpy
alors que vous utilisez ce tableau:
name[i]=new type[size_of_sec.Dim]
ou Vous pouvez déclarer quelque chose comme une matrice
type[ , ] name=new type [size1,size2]