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

class TwoWheres {

static void Main {

int [ ] nums = { 1, -2, 3, -3, 0, -8, 12, 19, 6, 9, 10 };

// Сформировать запрос на получение положительных значений меньше 10. var posNums = from n in nums where n > 0 where n < 10 select n;

Console.Write("Положительные значения меньше 10: ");

// Выполнить запрос и вывести его результаты. foreach(int i in posNums) Console.Write (i + " ");

Console.WriteLine;

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

Положительные значения меньше 10: 13 6 9

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

where.

where n > 0 where n < 10

Условие в первом оператореwhereтребует, чтобы элемент массива был больше нуля. А условие во втором оператореwhereтребует, чтобы элемент массива был меньше 10. Следовательно, запрашиваемый элемент массива должен находиться в пределах от 1 до 9 (включительно), чтобы удовлетворять обоим условиям.

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

var posNums = from n in nums

where n>0&&n<10 select n;

Как правило, в условии оператораwhereразрешается использовать любое допустимое в C# выражение, дающее булев результат. Например, в приведенной ниже программе определяется массив символьных строк. В ряде этих строк содержатся адреса Интернета. По запросу в переменойnetAddrsизвлекаются только те строки, которые содержат более четырех символов и оканчиваются на ".net". Следовательно, по данному запросу обнаруживаются строки, содержащие адреса Интернета с именем .netдомена самого верхнего уровня.

// Продемонстрировать применение еще одного оператора where.

using System; using System.Linq;

class WhereDemo2 { static void Main {

string[] strs = { ".com", ".net", "hsNameA.com",

"hsNameB.net", "test", ".network",

"hsNameC.net", "hsNameD.com" };

// Сформировать запрос на получение адресов // Интернета, оканчивающихся на .net. var netAddrs = from addr in strs

where addr.Length > 4 && addr.EndsWith(".net", StringComparison.Ordinal) sel-ect addr;

// Выполнить запрос и вывести его результаты. foreach(var str in netAddrs) Console.WriteLine(str);

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

hsNameB.net » hsNameC.net

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

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