Как я могу определить размер массива (длина / количество объектов) в C#?
Если это одномерный массив 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 соответственно.
для одномерного массива
int[] listItems = new int[] {2,4,8};
int length = listItems.Length;
для многомерного массива
int length = listItems.Rank;
Чтобы получить размер одного измерения
int length = listItems.GetLength(0);
Со свойством Length
.
int[] foo = new int[10];
int n = foo.Length; // n == 10
Вы можете посмотреть документацию для Array, чтобы узнать ответ на этот вопрос.
В этом конкретном случае вам, вероятно, понадобится Length:
int sizeOfArray = array.Length;
Но поскольку это такой основной вопрос, и у вас, без сомнения, есть гораздо больше подобных, а не просто говорить вам ответ, я бы предпочел сказать вам, как найти ответ самостоятельно.
Visual Studio Intellisense
При вводе имени переменной и нажатии клавиши .
он показывает вам список всех методов, свойств, событий и т. Д., Доступных на этом объекте. Когда вы выделяете участника, он дает вам краткое описание того, что он делает.
Нажмите клавишу F1
Если вы нашли метод или свойство, которое может выполнять то, что вы хотите, но не уверены, вы можете навести на него курсор и нажать клавишу F1, чтобы получить помощь. Здесь вы получите гораздо более подробное описание плюс ссылки на соответствующую информацию.
Search
Поисковые термины размер массива в C#
дают много ссылок, которые сообщают вам ответ на ваш вопрос и многое другое. Одним из самых важных навыков, которые должен освоить программист, является то, как найти информацию. Часто быстрее найти ответ самостоятельно, особенно если такой же вопрос задавался раньше.
Используйте учебник
Если вы только начинаете изучать C#, вам будет проще следовать учебнику. Я могу порекомендовать C# учебники на MSDN. Если вам нужна книга, я бы порекомендовал Essential C#.
Stack Overflow
Если вы не можете найти ответ самостоятельно, пожалуйста, не стесняйтесь публиковать вопрос на Stack Overflow. Но мы ценим это, если вы покажете, что вы приложили усилия, чтобы сначала найти ответ самостоятельно.
Для массива одном измерений используется свойство Length
:
int size = theArray.Length;
Для массивов с несколькими измерениями свойство Length
возвращает общее число элементов в массиве. Вы можете использовать метод GetLength
для получения размера одного из измерений:
int size0 = theArray.GetLength(0);
это выглядит следующим образом: 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]