Читаем C# 4.0: полное руководство полностью

    Console.WriteLine("Сумма равна: " + sum);

  }

}


Выполнение этой программы дает следующий результат.


Значение элемента равно: 1

Значение элемента равно: 2

Значение элемента равно: 3

Значение элемента равно: 4

Значение элемента равно: 5

Значение элемента равно: 2

Значение элемента равно: 4

Значение элемента равно: 6

Значение элемента равно: 8

Значение элемента равно: 10

Значение элемента равно: 3

Значение элемента равно: 6

Значение элемента равно: 9

Значение элемента равно: 12

Значение элемента равно: 15

Сумма равна: 90


Оператор foreach допускает циклическое обращение к массиву только в определенном порядке: от начала и до конца массива, поэтому его применение кажется, на первый взгляд, ограниченным. Но на самом деле это не так. В большом числе алгоритмов, самым распространенным из которых является алгоритм поиска, требуется именно такой механизм. В качестве примера ниже приведена программа, в которой цикл foreach используется для поиска в массиве определенного значения. Как только это значение будет найдено, цикл прервется.


// Поиск в массиве с помощью оператора цикла foreach.

using System;

class Search {

  static void Main() {

    int[] nums = new int [10];

    int val;

    bool found = false;


    // Задать первоначальные значения элементов массива nums.

    for (int i = 0; i < 10; i++)

      nums[i] = i;


    val = 5;

    // Использовать цикл foreach для поиска заданного

    // значения в массиве nums.

    foreach(int x in nums) {

      if(x == val) {

        found = true;

        break;

      }

    }

    if(found)

      Console.WriteLine("Значение найдено!");

  }

}


При выполнении этой программы получается следующий результат.


Значение найдено!


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


Строки

С точки зрения регулярного программирования строковый тип данных string относится к числу самых важных в С#. Этот тип определяет и поддерживает символьные строки. В целом ряде других языков программирования строка представляет собой массив символов. А в C# строки являются объектами. Следовательно, тип string относится к числу ссылочных. И хотя string является встроенным в C# типом данных, его рассмотрение пришлось отложить до тех пор, пока не были представлены классы и объекты.

На самом деле класс типа string уже не раз применялся в примерах программ, начиная с главы 2, но это обстоятельство выясняется только теперь, когда очередь дошла до строк. При создании строкового литерала в действительности формируется строковый объект. Например, в следующей строке кода:


Console.WriteLine("В C# строки являются объектами.");


текстовая строка "В C# строки являются объектами." автоматически преобразуется в строковый объект средствами С#. Следовательно, применение класса типа string происходило в предыдущих примерах программ неявным образом. А в этом разделе будет показано, как обращаться со строками явным образом.


Построение строк

Самый простой способ построить символьную строку — воспользоваться строковым литералом. Например, в следующей строке кода переменной ссылки на строку str присваивается ссылка на строковый литерал.


string str = "Строки в C# весьма эффективны.";


В данном случае переменная str инициализируется последовательностью символов "Строки в C# весьма эффективны.".

Объект типа string можно также создать из массива типа char. Например:


char[] charray = {'t', 'е', 's', 't'};

string str = new string(charray);


Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных