Герберт Шилдт - C# 4.0 полное руководство - 2011

Тут можно читать онлайн Герберт Шилдт - C# 4.0 полное руководство - 2011 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание

C# 4.0 полное руководство - 2011 - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)

C# 4.0 полное руководство - 2011 - читать книгу онлайн бесплатно, автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Обращение содержимого массива

Иногда оказывается полезно обратить содержимое массива и, в частности, отсортировать по убывающей массив, отсортированный по нарастающей. Для такого обращения массива достаточно вызвать методReverse (). С его помощью можно обратить содержимое массива полностью или частично. Этот процесс демонстрируется в приведенной ниже программе.

// Обратить содержимое массива.

using System;

class ReverseDemo { static void Main() {

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

// Отобразить исходный порядок следования. Console.Write("Исходный порядок следования: ");

foreach(int i in nums)

Console.Write(i + " ");

Console.WriteLine ();

// Обратить весь массив.

Array.Reverse(nums);

// Отобразить обратный порядок следования.

Console.Write("Обратный порядок следования: "); foreach(int i in nums)

Console.Write (i + " ");

Console.WriteLine();

// Обратить часть массива.

Array.Reverse(nums, 1, 3);

// Отобразить обратный порядок следования.

Console.Write("Частично обращенный порядок следования: "); foreach(int i in nums)

Console.Write(i + " ");

Console.WriteLine();

}

}

Эта программа дает следующий результат.

Исходный порядок следования: 12 3 4 5 Обратный порядок следования: 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();

}

}

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

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

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

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

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

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

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

public delegate bool Predicate (T obj)

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

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

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)) {

Console.WriteLine("Массив nums содержит отрицательное значение.");

// Затем найти первое отрицательное значение" в массиве, int х = Array.Find(nums, PredDemo.IsNeg);

Console.WriteLine("Первое отрицательное значение: " + x);

}

else

Console.WriteLine("В массиве nums отсутствуют отрицательные значения.");

}

}

Эта программа дает следующий результат.

Содержимое массива nums: 14-15-9 Массив nums содержит отрицательное значение.

Первое отрицательное значение: -1

В данном примере программы в качестве предиката методамExists () иFind () передается методIsNeg () . Обратите внимание на следующее объявление методаIsNeg().

static bool IsNeg (int v) {

МетодыExists () иFind () автоматически и по порядку передают элементы массива переменнойv. Следовательно, после каждого вызова методаIsNeg () переменнаяv будет содержать следующий элемент массива.

Применение делегата Action

ДелегатAction применяется в методеArray. ForEach () для выполнения заданного действия над каждым элементом массива. Существуют разные формы делегатаAction, отличающиеся числом параметров типа. Ниже приведена одна из таких форм.

public delegate void Action (T obj)

В этой форме объект, над которым должно выполняться действие, передается в качестве параметра obj. Когда же эта форма делегатаAction применяется в методеArray .ForEach ( ), то каждый элемент массива передается по порядку объекту obj.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0 полное руководство - 2011 отзывы


Отзывы читателей о книге C# 4.0 полное руководство - 2011, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x