русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы


Дата добавления: 2015-08-14; просмотров: 894; Нарушение авторских прав


Работа с массивами и строками. Интерфейсы и коллекции

 

Массивы

Язык C# предоставляет средства для работы с одномерными массивами, массивами массивов и многомерными массивами.

Ниже представлены способы объявления ссылок на массивы различной размерности и конфигурации.

// Объявление массива размерности 3 из элементов типа int.

// Фактически это массив составляющих, представляющих собой массивы

// размерности 2 одномерных массивов элементов типа int.

// Размеры всех составляющих массивов одного уровня равны

// между собой ("прямоугольный" массив).

 

int[,,] ar1;

 

// Объявление одномерного массива из

// одномерных массивов элементов, каждый из которых является

// одномерным массивом элементов типа int.

 

int[][][] ar2;

 

// Объявление одномерного массива составляющих, каждый из которых является

// двумерным массивом массивов элементов типа int.

// При этом у всех составляющих могут быть разные размеры

 

int[][,] ar3;

 

// Объявление двумерного массива составляющих, каждая из которых является

// одномерным массивом элементов типа int.

// При этом у всех составляющих могут быть разные размеры.

 

int[,][] ar4;

Рассмотренные примеры демонстрируют определение двух различных категории массивов:

· прямоугольные массивы,

· ломаные (jagged) массивы.

Объявление массива может быть совмещено с инициализацией. При объявлении с отложенной инициализацией сам массив не формируется, а создается толькоссылка на массив, имеющая неопределенное значение Null. Поэтому пока массив не будет реально создан и его элементы инициализированы, использовать его нельзя.

Возможны два варианта объявления массива совмещенного с инициализацией.

В первом случае инициализация является явной и задается списком констант, например:



int[] odd = {1, 3, 5, 7, 9};

Во втором случае создание и инициализация массива реализуется вместе с вызовом конструктора массива. Например:

int[] even = new int[5];

Все массивы являются потомками класса System.Array, который в свою очередь наследует ряд интерфейсов: ICloneable, IList, ICollection,IEnumerable, а, следовательно, реализует все их методы и свойства. Кроме того, класс Array имеет большое число собственных методов и свойств.

Благодаря наследованию от класса System.Array, для массивов определены такие встроенные методы копирования, поиска, обращения, сортировки. Массивы можно рассматривать также как как коллекции и использовать цикл foreach для перебора его элементов.

Ниже приведены основные свойства и методы класса System.Array:

Свойство Описание
IsFixedSize Возвращает true, если массив является статическим
IsReadOnly Для всех массивов возвращает значение false
IsSynchronized Возвращает true или false, в зависимости от того, установлена ли синхронизация доступа для массива
Length Число элементов в массиве
Rank Размерность массива
Метод Описание
BinarySearch Бинарный поиск элементов
Clear Выполняет инициализацию элементов. Числовые элементы становятся нулевыми, а строковые принимают значение Null
Clone Клонирование массива
Copy Копирование части или всего массива в другой массив
CopyTo Копируются все элементы одномерного массива в другой одномерный массив, начиная с заданного индекса
CreateInstance Создание экземпляра массива
GetEnumerator Возварщает интерфейс IEnumerator. Необходим для использования в цикле foreach
GetLength Возвращает число элементов массива по указанному измерению
GetLowerBound,GetUpperBound Возвращает нижнюю и верхнюю границу по указанному измерению. Для массивов нижняя граница всегда равна нулю.
GetValue SetValue Возвращает или устанавливает значение элемента массива с указанными индексами.
IndexOf Индекс первого вхождения образца в массив
LastIndexOf Индекс последнего вхождения образца в массив
Reverse Сортировка одномерного массива в обратном порядке
Sort Сортировка массива
     

Строки

В языке C# определен класс сhar[], и его можно использовать для представления строк постоянной длины. Однако массив сhar[] - это обычный массив, поэтому его нельзя инициализировать строкой символов. В C# не определено преобразование из класса сhar[] в класс String. У String естьдинамический метод ToCharArray, задающий подобное преобразование в сhar[].

Объекты класса String объявляются с явной или отложенной инициализацией, с явным или неявным вызовом конструктора класса. Чаще всего, при объявлении строковой переменной конструктор явно не вызывается, а инициализация задается строковой константой. У класса String достаточно много конструкторов, которые позволяют сконструировать строку из:

· символа, повторяющегося указанное число раз;

· массива символов char[] ;

· части массива символов.

Методы класса String позволяют выполнять вставку, удаление, замену, поиск вхождения подстроки в строку. Класс String наследует методы классаObject, а также методы четырех интерфейсов: IComparable, ICloneable, IConvertible, IEnumerable.

Некоторые из членов класса приведены в таблице:

Метод Описание
Length Это свойство возвращает длину указанной строки
Insert Вставляет подстроку в заданную позицию
Remove Удаляет подстроку в заданной позиции
Replace Заменяет подстроку в заданной позиции на новую подстроку
Substring Выделяет подстроку в заданной позиции
IndexOf, IndexOfAny, LastIndexOf,LastIndexOfAny Определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора
StartsWith, EndsWith Возвращается true или false, в зависимости от того, начинается или заканчивается строка заданной подстрокой
PadLeft, PadRight Выполняет заполнение нужным числом пробелов в начале и в конце строки
Trim, TrimStart, TrimEnd Удаляются пробелы в начале и в конце строки, либо только с одного конца
ToCharArray Преобразование строки в массив символов

Класс String не разрешает изменять существующие объекты. Для этой цели имеется другой класс - класс StringBuilder, который позволяет исправить данный недостаток. Этот класс принадлежит к изменяемым классам и его можно найти в пространстве имен System.Text.

Объекты этого класса объявляются с явным вызовом конструктора класса. Конструктор класса перегружен, и наряду с конструктором без параметров, создающим пустую строку, имеется набор конструкторов, которым можно передать две группы параметров:

· Первая группа позволяет задать строку или подстроку, значением которой будет инициализироваться создаваемый объект класса StringBuilder.

· Вторая группа параметров позволяет задать размер объекта, т.е объем памяти, отводимой для экземпляру класса StringBuilder.

Примеры конструкторов:

· public StringBuilder(string str, int size). Параметр str задает строку для инициализации, size - размер объекта;

· public StringBuilder(int cursize, int maxsize). Параметры cursize и maxsize задают начальный и максимальный размер объекта;

· public StringBuilder(string str, int start, int len, int size). Параметры str, start, len задают строку инициализации, size - размер объекта.

Над строками этого класса определены (также как идля строк класса String ) операции:

· присваивание ( = );

· две операции проверки эквивалентности ( == ) и ( != );

· взятие индекса ( [] ).

Операция конкатенации ( + ) не определена над строками класса StringBuilder, ее роль играет метод Append, добавляющий новую строку в конец существующей.



<== предыдущая лекция | следующая лекция ==>
С точки зрения аналитико-синтаксической деятельности, которую выполняет ученик | Интерфейсы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.