Герберт Шилдт - 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 - читать книгу онлайн бесплатно, автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

public string Phone { get; set; }

public Contactlnfo(string n, string a, string p) {

Name = n;

Email = a;

Phone = p;

}

}

class EmailAddress {

public string Name { get; set; } public string Address { get; set; } public EmailAddress(string n, string a) {

Name = n;

Address = a;

} -

}

class SelectDemo3 { static void Main() {

Contactlnfo[] contacts = {

new Contactlnfo("Герберт", " Herb@HerbSchildt.com ", "555-1010"), new Contactlnfo("Том", " Tom@HerbSchildt.com ", "555-1101"), new Contactlnfo("Capa", " Sara@HerbSchildt.com ", "555-0110")

}; •

// Сформировать запрос на получение списка объектов типа EmailAddress. var emailList = from entry in contacts

select new EmailAddress(entry.Name, entry.Email);

Console.WriteLine("Список адресов электронной почты:");

// Выполнить запрос и вывести его результаты, foreach(EmailAddress е in emailList)

Console.WriteLine(" {0}: {1}", e.Name, e.Address );

}

}

Ниже приведен результат выполнения этой программы.

• Список адресов электронной почты:

Герберт: Herb@HerbSchildt.com Том: Tom@HerbSchildt.com Сара: Sara@HerbSchildt.com

Обратите особое внимание в данном запросе на следующий оператор select.

select new EmailAddress(entry.Name, entry.Email);

В этом операторе создается новый объект типа EmailAddress, содержащий имя и адрес электронной почты, получаемые из объекта типа Contactlnfo, хранящегося в массиве contacts. Но самое главное, что новые объекты типа EmailAddress создаются в операторе select во время выполнения запроса.

Применение вложенных операторов from

Запрос может состоять из нескольких операторов- f г от, которые оказываются в этом случае вложенными. Такие операторы from находят применение в тех случаях, когда по запросу требуется получить данные из двух разных источников. Рассмотрим простой пример, в котором два вложенных оператора from используются в запросе для циклического обращения к элементам двух разных массивов символов. В итоге по такому запросу формируется последовательность результатов, содержащая все возможные комбинации двух наборов символов.

// Использовать два вложенных оператора from для составления списка // всех возможных сочетаний букв А, В и С с буквами X, Y и Z.

using System; using System.Linq;

// Этот класс содержит результат запроса, class ChrPair {

public char First;

public char Second;

public ChrPair(char c, char c2) {

First = c;

Second = c2;

}

}

class MultipleFroms { static void Main() {

char[] chrs = { 'A', 1В', 'C' };

char[] chrs2 = { 'X', 1Y', 'Z' };

// В первом операторе from организуется циклическое обращение //к массиву символов chrs, а во втором операторе from —

// циклическое обращение к массиву символов chrs2. var pairs = from chi in chrs

from ch2 in chrs2

select new ChrPair(chl, ch2);

Console.WriteLine("Все сочетания букв ABC и XYZ: "); foreach(var p in pairs)

Console.WriteLine("{0} {1}", p.First, p.Second);

}

}

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

Все сочетания букв ABC и XYZ:

А X A Y A Z В X В Y В Z С X С Y С Z

Этот пример кода начинается с создания класса ChrPair, в котором содержатся результаты запроса. Затем в нем создаются два массива, chrs и chrs2 , и, наконец, формируется следующий запрос для получения всех возможных комбинаций двух последовательностей результатов.

var pairs = from chi in chrs

from ch2 in chrs2

select new ChrPair(chi, ch2);

Во вложенных операторах from организуется циклическое обращение к обоим массивам символов, chrs и chrs2. Сначала из массива chrs получается символ, сохраняемый в переменной chi. Затем перечисляется содержимое массива chrs2. На каждом шаге циклического обращения во внутреннем операторе from символ из массива chrs2 сохраняется в переменной ch2 и далее выполняется оператор select. В результате выполнения оператора select создается новый объект типа ChrPair,

содержащий пару символов, которые сохраняются в переменных chi и ch2 на каждом шаге циклического обращения к массиву во внутреннем операторе from. А в конечном итоге получается объект типа ChrPair, содержащий все возможные сочетания извлекаемых символов.

Вложенные'операторы from применяются также для циклического обращения к источнику данных, который содержится в другом источнике данных. Соответствующий пример приведен в разделе "Применение оператора let для создания временной переменной в запросе" далее в этой главе.

Группирование результатов с помощью оператора group

Одним из самых эффективных средств формирования запроса является оператор group, поскольку он позволяет группировать полученные результаты по ключам. Используя последовательность сгруппированных результатов, можно без особого труда получить доступ ко всем данным, связанным с ключом. Благодаря этому свойству оператора group доступ к данным, организованным в последовательности связанных элементов, осуществляется просто и эффективно. Оператор group является одним из двух операторов, которыми может оканчиваться запрос. (Вторым оператором, завершающим запрос, является select.) Ниже приведена общая форма оператора group.

group переменная_диапазона by ключ

Этот оператор возвращает данные, сгруппированные в последовательности, причем каждую последовательность обозначает общий ключ.

Результатом выполнения оператора group является последовательность, состоящая из элементов типа IGrouping, т.е. обобщенного интерфейса, объявляемого в пространстве имен System. Linq. В этом интерфейсе определена коллекция объектов с общим ключом. Типом переменной запроса, возвращающего группу, является IEnumerable>. В интерфейсе IGrouping определено также доступное только для чтения свойство Key, возвращающее ключ, связанный с каждой коллекцией.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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