Размер массива (длина) в C#

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

85
задан Toastrackenigma 23 February 2019 в 12:34
поделиться

7 ответов

Если это одномерный массив 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]. Длина будет 3, 2 и 7 соответственно.

141
ответ дан 24 November 2019 в 08:13
поделиться

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

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

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

int length = listItems.Rank;

Чтобы получить размер одного измерения

int length =  listItems.GetLength(0);
14
ответ дан 24 November 2019 в 08:13
поделиться

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

int[] foo = new int[10];
int n = foo.Length; // n == 10
8
ответ дан 24 November 2019 в 08:13
поделиться

yourArray.Length :)

7
ответ дан 24 November 2019 в 08:13
поделиться

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

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

int sizeOfArray = array.Length;

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

Visual Studio Intellisense

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

Нажмите клавишу F1

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

Search

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

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

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

Stack Overflow

Если вы не можете найти ответ самостоятельно, пожалуйста, не стесняйтесь публиковать вопрос на Stack Overflow. Но мы ценим это, если вы покажете, что вы приложили усилия, чтобы сначала найти ответ самостоятельно.

28
ответ дан 24 November 2019 в 08:13
поделиться

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

int size = theArray.Length;

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

int size0 = theArray.GetLength(0);
5
ответ дан 24 November 2019 в 08:13
поделиться

это выглядит следующим образом: 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]
1
ответ дан 24 November 2019 в 08:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: