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

whereбулево_выражение

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

where n > О

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

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

следует выбирать. Например, по запросу списка рассылки может быть получена лишь фамилия адресата вместо его полного адреса. Обратите внимание на то, что операторselectзавершается точкой с запятой, поскольку это последний оператор в запросе. А другие его операторы не оканчиваются точкой с запятой.

Итак, переменная запросаposNumsсоздана, но результаты запроса пока еще не получены. Дело в том, что сам запрос определяет лишь ряд конкретных правил, а результаты будут только после выполнения запроса. Кроме того, один и тот же запрос может быть выполнен два раза или больше, причем с разными результатами, если в промежутке между последовательно производимыми попытками выполнить один и тот же запрос изменяется базовый источник данных. Поэтому одного лишь объявления переменной запросаposNumsсовершенно недостаточно для того, чтобы она содержала результаты запроса.

Для выполнения запроса в данном примере программы организуется следующий цикл.

foreach(int i in posNums) Console.WriteLine(i + " ");

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

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