Программирование на языке C#


  Свойства и методы массивов


Download 1.19 Mb.
Pdf ko'rish
bet39/66
Sana23.10.2023
Hajmi1.19 Mb.
#1717181
1   ...   35   36   37   38   39   40   41   42   ...   66
Bog'liq
Программирование на языке C#

9.6. 
Свойства и методы массивов 
 
Массивы в языке 
C#
обладают свойствами и методами
позволяющие упростить многие действия. Рассмотрим основные 
свойства и методы массивов. 
64 


Свойство 
Length 

получает общее число элементов во всех 
измерениях массива; ноль, если в массиве нет элементов. 
Например, объявим и создадим двумерный массив размерности 
4x2
. С 
помощью свойства 
Length
получим общее количество элементов, а 
результат запишем в переменную 
count
. В нашем случае будет 
получено значение 
8

int row=4,column=2; 
int[,] array2D = new int[row, column]; 
int count = array2D.Length; //переменная count принимает 
значение 8 
В случае одномерного массива данное свойство удобно 
использовать в качестве граничного значения при обходе элементов 
массива, т. е. нет необходимости создавать отдельную переменную для 
хранения количества элементов. 
Рассмотрим на примере. Создадим и заполним случайными числами 
массив, состоящий из 100 элементов. Заполнение организуем с 
помощью цикла 
for
от 
0
до 
tmpArray.Length 
(листинг 19). 
int n = 100; 
int [] tmpArray = new int[n]; 
for(int index=0;index < tmpArray.Length;index++){ 
tmpArray[index] = Rnd.Next(10,234); 

Листинг 19. 
Свойство 
Length
удобно использовать в случае ступенчатых 
массивов, так как их строки могут быть разной длины. Пример обхода 
ступенчатой матрицы с выводом элементов на экран приводится в 
листинге 20.
int[][] arrX = new int[4][]; // Ступенчатый массив 
arrX[0] = new int[2] { 2, 2}; 
arrX[1] = new int[4] { 2, 4, 6, 8 }; 
arrX[2] = new int[6] { 2, 2, 2, 2,2,2}; 
arrX[3] = new int[8] { 2, 4, 6, 8,10,12,14,16}; 
for(int i=0;ifor(int j=0;j < arrX[i].Length;j++){ 
Console.Write("{0} ,", arrX[i][j]); 

Console.WriteLine (); 

Листинг 20. 
65 


Свойство 
Rank
– 
получает ранг (число измерений) массива. Для 
одномерного массива – значение 
1
, для двумерного – значение 
2
и т. д. 
Рассмотрим пример обращения к свойству 
Rank
, в котором для 
каждого массива
array1

array2

array3
выводим на экран его 
размерность. 
int[] array1 = new int[10]; 
int[,] array2= new int[10,3]; 
int[, ,] array3 = new int[4,4,2]; 
Console.WriteLine("{0}:dimension(s)", array1.Rank); 
Console.WriteLine("{0}:dimension(s)", array2.Rank); 
Console.WriteLine("{0}:dimension(s)", array3.Rank); 
Метод 
GetLength
– 
возвращает 32-разрядное целое число, 
представляющее количество элементов в заданном измерении массива. 
Данный метод зависит от целочисленного входного аргумента, 
определяющего номер размерности, для которой необходимо получить 
длину. Допустимое значение номера размерности лежит в диапазоне 
от 
0
до 
Rank-1
.
Например, создадим трехмерный массив 
array3D
,
выведем на экран 
количество элементов для каждой размерности (листинг 21). В первой 
строке, выводим на экран общее количество элементов с помощью 
свойства
Length
, а далее количество элементов для каждой 
размерности. 
int[,,] array3D = new int[10,11,12]; 
Console.WriteLine(array3D.Length); //Общее кол-во элементов 
1320 
Console.WriteLine(array3D.GetLength(0));//Для первой 
размерности 10 элементов 
Console.WriteLine(array3D.GetLength(1));//Для второй 11 
элементов 
Console.WriteLine(array3D.GetLength(2));//Для третьей 12 
элементов 
Листинг 21. 
Усовершенствуем данный пример, в котором организуем вывод 
количества элементов для каждой размерности с помощью цикла 
(листинг 22). 
int[ , , ] array3D = new int[10,11,12]; 
Console.WriteLine(array3D.Length); 
for(int i=0;iConsole.WriteLine(array3D.GetLength(i)); 

Листинг 22. 
66 


Методы 
массива 
GetUpperBound(int 
dimension) 
и 
GetLowerBound (int dimension)
получают соответственно индекс 
последнего элемента и индекс первого элементов для указанного 
измерения, определяемый параметром dimension, либо возвращает 
значение -1, если указанное измерение пусто. 
Например, получим значение последнего индекса для каждого из 
трех измерений массива (листинг 23). 
int[ , , ] arrX = { { { 1, 1 },{ 2, 2 },{ 3, 3 } },
{ { 4, 4 },{ 5, 5 },{ 6, 6 } }
}; 
int upIndexA = arrX.GetUpperBound(0);//Значение последнего 
индекса равно 1, так как определено две строки
int upIndexB = arrX.GetUpperBound(1);//Значение последнего 
индекса равно 2, так как каждый элемент массива состоит из 
трех элементов
int upIndexC = arrX.GetUpperBound(2);//Значение последнего 
индекса равно 1, так как по третьему измерению элемент 
массива является массивом, состоящим из двух элементов. 
Листинг 23. 

Download 1.19 Mb.

Do'stlaringiz bilan baham:
1   ...   35   36   37   38   39   40   41   42   ...   66




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling