Размер массива (длина) в C # - PullRequest
79 голосов
/ 16 мая 2010

Как определить размер массива (длина / количество элементов) в C #?

Ответы [ 8 ]

133 голосов
/ 16 мая 2010

Если это одномерный массив a,

a.Length

даст количество элементов a.

Если b - прямоугольный многомерный массив (например, int[,] b = new int[3, 5];)

b.Rank

даст число измерений (2) и

b.GetLength(dimensionIndex)

получит длину любого заданного измерения (индексирование для измерений на основе 0 - таким образом, b.GetLength(0) равно 3 и b.GetLength(1) равно 5).

См. Документация System.Array для получения дополнительной информации.

Как отмечает @Lucero в комментариях, существует концепция «зубчатого массива», который на самом деле является не чем иным, как одномерным массивом (обычно одномерным) массивов.

Например, можно иметь следующее:

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};

Обратите внимание, что все 3 члена c имеют разную длину. В этом случае, как и раньше, c.Length будет указывать количество элементов c, (3) и c[0].Length, c[1].Length, а c[2].Length будет равно 3, 2 и 7 соответственно.

28 голосов
/ 16 мая 2010

Вы можете посмотреть документацию для массива , чтобы найти ответ на этот вопрос.

В данном конкретном случае вам, вероятно, потребуется Длина :

int sizeOfArray = array.Length;

Но так как это такой базовый вопрос, и у вас, без сомнения, таких гораздо больше, чем просто сказать вам ответ, я бы лучше сказал вам, как найти ответ самостоятельно.

Visual Studio Intellisense

Когда вы вводите имя переменной и нажимаете клавишу ., она показывает вам список всех методов, свойств, событий и т. Д., Доступных для этого объекта. Когда вы выделяете участника, он дает вам краткое описание того, что он делает.

image

Нажмите F1

Если вы нашли метод или свойство, которое могло бы делать то, что вы хотите, но вы не уверены, вы можете переместить курсор на него и нажать F1, чтобы получить помощь. Здесь вы получите гораздо более подробное описание и ссылки на соответствующую информацию.

Поиск

Условия поиска size of array in C# дают много ссылок, которые сообщают вам ответ на ваш вопрос и многое другое. Один из самых важных навыков, которые программист должен освоить, - это как найти информацию. Часто быстрее найти ответ самостоятельно, особенно если тот же вопрос задавался ранее.

Воспользуйтесь учебником

Если вы только начинаете изучать C #, вам будет легче следовать учебнику. Я могу порекомендовать C # учебники на MSDN. Если вы хотите книгу, я бы порекомендовал Essential C # .

Переполнение стека

Если вы не можете найти ответ самостоятельно, пожалуйста, не стесняйтесь разместить вопрос в переполнении стека. Но мы будем благодарны, если вы покажете, что сначала постарались найти ответ самостоятельно.

13 голосов
/ 16 мая 2010

для одномерного массива

int[] listItems = new int[] {2,4,8};
int length = listItems.Length;

для многомерного массива

int length = listItems.Rank;

Чтобы получить размер 1 размер

int length =  listItems.GetLength(0);
8 голосов
/ 16 мая 2010

Со свойством Length.

int[] foo = new int[10];
int n = foo.Length; // n == 10
7 голосов
/ 16 мая 2010

yourArray.Length:)

5 голосов
/ 16 мая 2010

Для массива одного измерения вы используете свойство Length:

int size = theArray.Length;

Для многомерных массивов свойство Length возвращает общее количество элементов в массиве. Вы можете использовать метод GetLength, чтобы получить размер одного из измерений:

int size0 = theArray.GetLength(0);
3 голосов
/ 25 апреля 2013

В большинстве общих случаев используются «Длина» и «Количество».

Массив:

int[] myArray = new int[size];
int noOfElements = myArray.Length;

Массив типизированных списков:

List <int> myArray = new List<int>();
int noOfElements = myArray.Count;
1 голос
/ 16 мая 2010

это выглядит так: 1D:

 type[] name=new type[size]  //or =new type[]{.....elements...}

2D:

 type[][]name=new type[size][] //second brackets are emtpy

тогда, когда вы используете этот массив:

 name[i]=new type[size_of_sec.Dim]

или Вы можете объявить что-то вроде матрицы

type[ , ] name=new type [size1,size2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...