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

Обратный порядок следования: 5 4 3 2 1

Частично обращенный порядок следования: 5 2 3 4 1

Копирование массива

Полное или частичное копирование одного массива в другой — это еще одна весьма распространенная операция с массивами. Для копирования содержимого массива служит метод Сору(). В зависимости от его варианта копирование элементов исходного массива осуществляется в начало или в средину целевого массива. Применение метода Сору() демонстрируется в приведенном ниже примере программы.

// Скопировать массив.

using System;

class CopyDemo {

  static void Main() {

    int[] source = { 1, 2, 3, 4, 5 };

    int[] target = { 11, 12, 13, 14, 15 };

    int[] source2 = { -1, -2, -3, -4, -5 };

    // Отобразить исходный массив.

    Console.Write("Исходный массив: ");

    foreach (int i in source)

      Console.Write(i + " ");

    Console.WriteLine();

    // Отобразить исходное содержимое целевого массива.

    Console.Write("Исходное содержимое целевого массива: ");

    foreach (int i in target)

      Console.Write(i +" ");

    Console.WriteLine();

    // Скопировать весь массив.

    Array.Copy(source, target, source.Length);

    // Отобразить копию.

    Console.Write("Целевой массив после копирования: ");

    foreach (int i in target)

      Console.Write(i + " ");

    Console.WriteLine();

    // Скопировать в средину целевого массива.

    Array.Copy(source2, 2, target, 3, 2);

    // Отобразить копию.

    Console.Write("Целевой массив после частичного копирования: ");

    foreach (int i in target)

      Console.Write(i + " ");

    Console.WriteLine();

  }

}

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

Исходный массив: 1 2 3 4 5

Исходное содержимое целевого массива: 11 12 13 14 15

Целевой массив после копирования: 1 2 3 4 5

Целевой массив после частичного копирования: 1 2 3 -3 -4

Применение предиката

Предикат представляет собой делегат типа System.Predicate, возвращающий логическое значение true или false в зависимости от некоторого условия. Он объявляется следующим образом.

public delegate bool Predicate (T obj)

Объект, проверяемый по заданному условию, передается в качестве параметра obj. Если объект obj удовлетворяет заданному условию, то предикат должен возвратить логическое значение true, в противном случае — логическое значение false. Предикаты используются в ряде методов класса Array, включая: Exists(), Find(), Findlndex() и FindAll().

В приведенном ниже примере программы демонстрируется применение предиката с целью определить, содержится ли в целочисленном массиве отрицательное значение. Если такое значение обнаруживается, то данная программа извлекает первое отрицательное значение, найденное в массиве. Для этого в ней используются методы Exists() и Find().

//Подемострировать применеие предикатного делегата

using System;

class PredDemo {

  // Предикатный метод, возвращающий логическое значение true,

  // если значение переменной v оказывается отрицательным,

  static bool IsNeg(int v) {

    if (v < 0) return true;

    return false;

  }

  static void Main() {

    int[] nums = { 1, 4, -1, 5, -9 };

    Console.Write("Содержимое массива nums: ");

    foreach (int i in nums)

      Console.Write(i + " ");

    Console.WriteLine();

    // Сначала проверить, содержит ли массив nums отрицательное значение,

    if (Array.Exists(nums, PredDemo.IsNeg)) {

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

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

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

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

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

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

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

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

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

Книга посвящена верстке и макетированию в программе Adobe InDesign CS3. Помимо того что в ней описываются возможности программы, рассматриваются также принципы и традиции верстки, приводятся примеры решения типичных задач. Все это позволит читателю не только овладеть богатым инструментарием программы, но и грамотно применять его.Материал книги разделен на логические части: теоретические сведения, инструментарий программы, решение задач, – а также рассчитан на два уровня подготовки читателей – начинающих и опытных пользователей, что выгодно отличает книгу от других изданий. Это позволит применять ее как новичкам для знакомства с программой, так и пользователям со стажем для пополнения своих знаний.

Владимир Гавриилович Завгородний , Владимир Завгородний

Программирование, программы, базы данных / Программное обеспечение / Книги по IT