Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
7
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

30. Доступ к элементам массива.

В С# все массивы наследуют класс System.Array, а у него множество свойств и методов. Например, есть очень полезное свойство Length – длина массива. Если надо перебрать все

элементы массива, свойство Length будет очень кстати:

for (int i = 0; i < m.Length; ++i) { m[i] = 1; }

В классе Array есть несколько статических методов, которыми можно воспользоваться, когда работаешь с массивами.

Метод Copy():

Array.Copy(m, m1, m.Length);

// Копируем все элементы из массива m - в массив m1.

Array.Copy(m, 3, m1, 0, 5);

// Копируем 5 элементов массива m, начиная с 3-го, в самое начало массива m1.

МетодClear():

Array.Clear(m, 2, 5);

// Засылаем нули в 5 элементов, начиная со 2-го.

Array.Clear(m, 0, m.Length); // Очищаем весь массив.

МетодSort():

Array.Sort(m);

// Сортируеммассивповозрастанию.

МетодBinarySearch():

int ix = Array.BinarySearch(m, x);

// Быстро определяем, на каком месте в массиве стоит число x.

31.Основные свойства и методы массивов.

Массивы в C# несколько отличаются от других C-подобных языков. Начнем сразу с примеров. Пример первый:

int[] k; //k - массив

k=new int [3]; //Определяем массив из 3-х целых

k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива

Console.WriteLine(k[2].ToString()); //Выводим третий элемент массива

так как массив представляет из себя ссылочный объект, то для создания массива необходима строка k=new int [3];

Именно в ней мы и определяем размер массива. Хотя, вообще говоря, возможны конструкции вида int[] k = new int [3];

Элементы массива можно задавать сразу при объявлении. Вот пример: int[] k = {-5, 4, 55};

В C# нумерация элементов массива идет с нуля. Таким образом в нашем примере начальный элемент массива - это k[0], а последний - k[2].

Теперь переходим к многомерным массивам. Вот так задается двумерный массив:

int[,] k = new int [2,3];

что в нашем примере у массива 6 (=2*3) элементов (k[0,0] - первый, k[1,2] - последний).

Аналогично мы можем задавать многомерные массивы. Вот пример трехмерного массива:

int[,,] k = new int [10,10,10];

32.Коллекции. Их виды.

Они предназначены для группировки объектов, а так же для обработки и управления этими объектами. Можно выделить два вида коллекций( наборов ) - те, которые хранят объекты типа Object, и обобщенные наборы, в которых при добавлении элемента указывается его тип. Соответственно, более предпочтительными являются коллекции второго типа, так как поддерживают безопасность типов. У коллекций не фиксирован объем, их можно пополнять неограниченно

Классы для хранения данных типа Object хранятся в пространстве имен: System.Collections. Обобщенные классы хранятся в System.Collections.Genereic. Ну и для хранения данных одного вида используется пространство имен System.Collections.Specialized.

Так же существуют и другие способы деления коллекций ( наборов ) - на словари, списки, коллекции.

Основные интерфейсы коллекций ( наборов )

IEnumerable - этот интерфейс служит для того, что бы в коллекциях ( наборах ) можно было организовать цикл foreach

ICollection - служит для добавления и удаления элементов

IList - унаследован от ICollection. С помощью этого интерфейса можно удалять, вставлять, обращаться к элементам набора с помощью индекса.

IDictionary - служит для создания словарей, которые хранят ключ и значение

IComparer - используется для сортировки наших коллекций ( наборов )