русс | укр

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

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

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

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


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

Оператор foreach для работы с массивами


Дата добавления: 2013-12-23; просмотров: 1232; Нарушение авторских прав


Класс System.Array

Все массивы в С# построены на основе базового класса Array, который содержит свойства и методы, представленные в таблице 7.1

 

Таблица 7.1 – Основные элементы класса Array (представлены не полностью)

Свойство   Описание  
Length   Количество элементов массива (по всем размерностям)  
Rank   Количество размерностей массива  
BinarySearch Двоичный поиск в отсортированном массиве
Clear Выполняет начальную инициализацию элементов. В зависимости от типа элементов устанавливает значение 0 для арифметического типа, false - для логического типа, Null для ссылок, "" - для строк.
Copy Копирование части или всего массива в другой массив.
IndexOf Поиск индекса первого вхождения элемента в одномерный массив.
LastIndexOf Поиск индекса последнего вхождения элемента в одномерный массив.
Reverse Изменение порядка следования элементов на обратный.
Sort Сортировка элементов одномерного массива
CopyTo   Копируются все элементы одномерного массива в другой одномерный массив, начиная с заданного индекса  
GetLength   Возвращает число элементов массива по указанному измерению.  
GetValue, SetValue   Возвращает или устанавливает значение элемента массива с указанными индексами.  
         

Свойство Length позволяет реализовывать алгоритмы, которые будут работать с массивами различной длины. Использование этого свойства вместо явного задания размерности исключает возможность выхода индекса за границы массива.


Пример применения элементов класса Array для работы с одномерным массивом.

using System;

namespace ConsoleApplication1



{

class Class1

{

static void Main()

{

int [] a= {3,12,5,18,-9,8,-4};

PrintArray (“Исходный массив:”, a); //пользовательская функция (метод)

Console.WriteLine(Array.IndexOf(a,18);

Array.Sort(a);

PrintArray (“Отсортированный массив:”, a);

Console.WriteLine(Array.BinarySearch(a,18));

}//конец Main()

public static void PrintArray(string s, int[] a)

{

Console.WriteLine(s);

for (int i=0;i<a.Length;++i)

Console.Write(“\t”+a[i]);

Console.WriteLine();

} //конец функции

}//конец класса Class1

}//конец пространства имен ConsoleApplication1

Методы Sort(), IndexOf(), BinarySearch() являются статическими, поэтому к ним обращаются через имя класса и передают в них имя массива. Двоичный поиск можно применять только для упорядоченных массивов.

В приведенном примере поиск элемента со значением 18 выполняется двумя способами.

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

Для того, чтобы метод PrintArray() мог применяться к массивам другого типа необходимо вместо передачи обычного одномерного массива использовать класс Array. Значения элементов такого массива получают с помощью метода GetValue, так как доступ по индексу для класса Array не предусмотрен.

Модифицированный метод PrintArray

public static void PrintArray(string s, Array a)

{

Console.WriteLine(s);

for (int i=0;i<a.Length;++i)

Console.Write(“\t”+a.GetValue(i));

Console.WriteLine();

}

Оператор foreach применяется для перебора элементов в специальным образом организованной группе данных. Массив является такой группой. Удобство такого вида цикла заключается в том, что не требуется определять количество элементов и выполнять их перебор по индексу. Просто указывается необходимость перебора всех элементов группы. Синтаксис оператора:

foreach (тип имя in выражение) тело_цикла

 

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

Вывод массива a на экран с помощью оператора foreach:

// х - локальная переменная цикла, а - одномерный массив

foreach (int x in a) Console.WriteLine(x);

На каждом проходе цикла очередной элемент массива присваивается переменной х и с ней выполняются действия, записанные в теле цикла.

Пример работы с одномерным массивом с использованием цикла foreach

using System;

namespace ConsoleApplication1



{

class Class1

{

static void Main()

{

const int n=6;

int [] a= {3,12,5,-9,8,-4};

Console.WriteLine(“Исходный массив: ”);

foreach (int x in a)

Console.Write(“\t” +x);

Console.WriteLine();

int s=0,k=0;

foreach (int x in a)

if (x<0)

{

s+=x;

++k;

}

Console.WriteLine(“Сумма отрицательных ”+s);

Console.WriteLine(“Количество отрицательных ”+k);

}}}

Модифицированный метод PrintArray() с использованием оператора цикла foreach

public static void PrintArray(string s, Array a)

{

Console.WriteLine(s);

foreach (object x in a)

Console.Write(“\t”+x);

Console.WriteLine();

}

Такая запись становится возможной потому, что любой объект может быть неявно преобразован к типу базового класса object.

Ограничением применения оператора foreach является то, что с помощью его можно только просматривать значения в группе данных, но не изменять их.

Использование оператора foreach для вывода на экран двумерного массива имеет вид:

foreach (int [] x in a)

{

foreach (int y in x) Console.Write(“\t”+y);

Console.WriteLine();

}


 



<== предыдущая лекция | следующая лекция ==>
Прямоугольные массивы | Лекция 7. Массивы


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


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

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

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


 


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

 
 

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

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