- •Массивы
- •Класс Array
- •Рассмотрим пример использования класса Array. Для этого создадим массив и обеспечим возможность поиска в нем элементов.
- •Работа со строками в c#
- •Управляющие последовательности и специальные символы в строках
- •Использование класса System.Text.StringBuilder
- •Основные операторы языка c#
- •Цикл foreach
Класс Array
Для более детального понимания особенностей использования массивов в C# необходимо рассмотреть специализированный класс, реализующий функции массива. Как уже упоминалось ранее, все типы данных в C# являются классами, для которых в качестве базового выступает класс Object. Класс Array - не исключение. Он реализует все базовые свойства классов и является предком для всех типов массивов, к которым мы привыкли в языке C++ и синтаксис описания которых был приведен выше. То, что класс Array является потомком класса Object, кажется на первый взгляд малоинтересным фактом, однако на самом деле говорит о многом. В частности, благодаря этому в классе Array оказывается определено множество разнообразных операций, таких как копирование, поиск, обращение, сортировки и т. д.
Ниже приведены наиболее интересные методы класса Array
BinarySearch() |
Поиск элементов в одномерном отсортированном массиве. |
Sort() |
Сортировка элементов одномерного массива. |
Clear() |
Очистка элементов массива в заданном диапазоне индексов. |
CopyTo() |
Копирование элементов исходного массива в массив назначения. |
GetLength(), Length |
Определение количества элементов в указанном измерении массива. |
GetLowerBound() |
Определение нижней границы массива. |
GetUpperBound() |
Определение верхней границы массива. |
GetValue() |
Возвращает значение указанного индекса для массива. |
SetValue() |
Устанавливает значение указанного индекса для массива. |
Reverse() |
Расставляет элементы одномерного массива в обратном порядке. |
Rank |
Определение количества измерений указанного массива. |
Рассмотрим пример использования класса Array. Для этого создадим массив и обеспечим возможность поиска в нем элементов.
Объявим массив myArray как статический член класса Page, состоящий из шести элементов типа int:
static Array myArray = Array.CreateInstance(typeof(Int32), 6);
Разместим на форме элементы TextBox и Button, которым присвоим имена tb_value и btn_find соответственно, как показано на рис. 3.3.
Рис. 3.3.Размещение на форме элементов TextBox и Button
В обработчик процедуры нажатия на кнопку введем следующий код, заполняющий массив случайными числами, сортирующий его и осуществляющий поиск введенного в текстовое поле элемента. Код процедуры нажатия на кнопку приведен ниже.
protected void btn_find_Click(object sender, EventArgs e)
{
Random rnd = new Random();
Response.Write("Исходный массив <br/>");
for (int i = myArray.GetLowerBound(0); i <=
myArray.GetUpperBound(0); i++)
{
myArray.SetValue(rnd.Next(1, 10), i);
Response.Write(myArray.GetValue(i) + "\t");
}
Response.Write("<br/>");
Array.Sort(myArray);
Response.Write("После сортировки:<br/>");
for (int i = myArray.GetLowerBound(0); i <=
myArray.GetUpperBound(0); i++)
{
Response.Write(myArray.GetValue(i) + "\t");
}
object o = Convert.ToInt32(tb_value.Text);
int findIndex = Array.BinarySearch(myArray, o);
if (findIndex<0)
{
Response.Write("<br/>Элемент не найден");
}
else
{
Response.Write("<br/>Элемент найден в позиции <b>"+findIndex.
ToString()+"</b>");
}
}
Пример работы программы в результате выполнения приведенного выше кода представлен на рис. 3.4.
Рис. 3.4.Результат работы программы заполнения, сортировки и поиска элементов массива
Как видно, работать с массивами в C# достаточно просто, в особенности учитывая довольно большие возможности класса Array.