Чтение онлайн

ЖАНРЫ

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

class RevCopy {

static void Main { int i,j;

int[] numsl = new int[10]; int[] nums2 = new int[10];

for(i=0; i < numsl.Length; i++) numsl[i] = i;

Console.Write("Исходное содержимое массива: "); for(i=0; i < nums2.Length; i++)

Console.Write(numsl[i] + " ");

Console.WriteLine;

// Скопировать элементы массива numsl в массив nums2 в обратном порядке, if(nums2.Length >= numsl.Length) // проверить, достаточно ли

// длины массива nums2 for(i=0, j=numsl.Length-1; i < numsl.Length; i++, j--) nums2[j] = numsl[i];

Console.Write("Содержимое

массива в обратном порядке: "); for(i=0; i < nums2.Length; i++)

Console.Write(nums2[i] + " ");

Выполнение этой программы дает следующий результат.

Исходное содержимое массива: 0123456789 Содержимое массива в обратном порядке: 9876543210

В данном примере свойство Length помогает выполнить две важные функции. Во-первых, оно позволяет убедиться в том, что длины целевого массива достаточно для хранения содержимого исходного массива. И во-вторых, оно предоставляет условие для завершения цикла for, в котором выполняется копирование исходного массива в обратном порядке. Конечно, в этом простом примере размеры массивов нетрудно выяснить и без свойства Length, но аналогичный подход может быть применен в целом ряде других, более сложных ситуаций.

Применение свойства Length при обращении со ступенчатыми массивами

Особый случай представляет применение свойства Length при обращении со ступенчатыми массивами. В этом случае с помощью данного свойства можно получить длину каждого массива, составляющего ступенчатый массив. В качестве примера рассмотрим следующую программу, в которой имитируется работа центрального процессора (ЦП) в сети, состоящей из четырех узлов.

// Продемонстрировать применение свойства Length // при обращении со ступенчатыми массивами.

using System;

class Jagged {

static void Main {

int[][] network_nodes = new int[4][]; network_nodes[0] = new int[3]; network_nodes[1] = new int[7]; network_nodes[2] = new int[2]; network_nodes[3] = new int[5];

int i, j;

// Сфабриковать данные об использовании ЦП. for(i=0; i < network_nodes.Length; i++)

for(j=0; j < network_nodes[i].Length; j++) network_nodes[i][j] = i * j + 70;

Console.WriteLine("Общее количество узлов сети: " + network_nodes.Length + "\n");

for(i=0; i < network_nodes.Length; i++) {

for(j=0; j < network_nodes[i].Length; j++) {

Console.Write("Использование в узле сети " + i +

" ЦП " + j + ": ");

Console.Write(network_nodes[i][j] + "% ");

Console.WriteLine ;

}

При выполнении этой программы получается следующий результат.

Общее количество узлов

сети:

: 4

Использование

в

узле

0

ЦП

0

70%

Использование

в

узле

0

ЦП

1

70%

Использование

в

узле

0

ЦП

2

70%

Использование

в

узле

1

ЦП

0

70%

Использование

в

узле

1

ЦП

1

71%

Использование

в

узле

1

ЦП

2

72%

Использование

в

узле

1

ЦП

3

73%

Использование

в

узле

1

ЦП

4

74%

Использование

в

узле

1

ЦП

5

75%

Использование

в

узле

1

ЦП

Поделиться с друзьями: