Мы уже говорили о том, что массивы в С# реализованы как объекты. Если говорить более точно, то они реализованы на основе базового класса Array, определенного в пространстве имен System. Данный класс содержит различные свойства и методы. Например, свойство Length позволяет определять количество элементов в массиве. Преобразуем предыдущий пример:
class Program
{
static void Print(int[] a) // передаем только ссылку на массив
{
for (int i = 0; i < a.Length; i++) Console.Write("{0} ", a[i]);
Другие свойства и методы класса Array приведены в следующей таблице:
Элемент
Вид
Описание
Length
свойство
Количество элементов массива (по всем размерностям)
BinarySearch
статический метод
Двоичный поиск в отсортированном массиве
Clear
статический метод
Присваивание элементам массива значений по умолчанию
Copy
статический метод
Копирование заданного диапазона элементов одного массива в другой
CopyTo
экземплярный метод
Копирование всех элементов текущего одномерного массива в другой массив
GetValue
экземплярный метод
Получение значения элемента массива
IndexOf
статический метод
Поиск первого вхождения элемента в одномерный массив
LastIndexOf
статический метод
Поиск последнего вхождения элемента в одномерный массив
Reverse
статический метод
Изменение порядка следования элементов на обратный
SetValue
экземплярный метод
Установка значения элемента массива
Sort
статический метод
Упорядочивание элементов одномерного массива
Вызов статических методов происходит через обращение к имени класса, например, Array.Sort(myArray). В данном случае мы обращаемся к статическому методу Sort класса Array и передаем данному методу в качестве параметра объект myArray - экземпляр класса Array.
Обращение к свойству или вызов экземплярного метода производится через обращение к экземпляру класса, например, myArray.Length или myArray.GetValue(i).
Пример:
class Program
{
static void Main()
{
try
{
int[] MyArray;
Console.Write("Введите размерность массива: ");
int n = int.Parse(Console.ReadLine());
MyArray = new int[n];
for (int i = 0; i < MyArray.Length; ++i)
{
Console.Write("a[{0}]=",i);
MyArray[i] = int.Parse(Console.ReadLine());
}
PrintArray("исходный массив:", MyArray);
Array.Sort(MyArray);
PrintArray("массив отсортирован по возрастанию", MyArray);
Array.Reverse(MyArray);
PrintArray("массив отсортирован по убыванию", MyArray);