// Сформировать простой запрос LINQ.

using System; using System.Linq;

class SimpQuery {

static void Main() {

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

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

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

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

Console.WriteLine();

}

}

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

Положительные значения из массива nums: 1 3 5

Как видите, в конечном итоге отображаются только положительные значения, хранящиеся в массивеnums.Несмотря на всю свою простоту, этот пример наглядно демонстрирует основные возможности LINQ. Поэтому рассмотрим его более подробно.

Прежде всего обратите внимание на применение в данном примере программы следующего оператора.

Для применения средств LINQ в исходный текст программы следует включить пространство именSystem.Linq.

Затем в программе объявляется массивnumsтипаint.Все массивы в C# неявным образом преобразуются в форму интерфейсаIEnumerable.Благодаря этому любой массив в C# может служить в качестве источника данных, извлекаемых по запросу LINQ.

Далее объявляется запрос, по которому из массиваnumsизвлекаются элементы только с положительными значениями.

var posNums = from n in nums where n > 0 select попеременнаяposNumsназываетсяпеременной запроса.В ней хранится ссылка на ряд правил, определяемых в запросе. Обратите внимание на применение ключевого словаvarдля объявления переменнойposNumsнеявным образом. Как вам должно быть уже известно, благодаря этому переменнаяposNumsстановится неявно типизированной. Такими переменными удобно пользоваться в запросах, хотя их тип можно объявить и явным образом (это должна быть одна из форм интерфейсаIEnumerable).Объявляемой переменнойposNumsв итоге присваивается выражение запроса.

Все запросы начинаются с оператораfrom,определяющего два элемента. Первым из них являетсяпеременная диапазона, принимающая элементы из источника данных. В рассматриваемом здесь примере эту роль выполняет переменнаяп.Вторым элементом является источник данных (в данном случае — массивnums).Тип переменной диапазона выводится из источника данных. Поэтому переменнаяпотносится к типуint.Ниже приведена общая форма оператораfrom.

fromпеременная_диапазонаinисточник_данных

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

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