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

letимя = выражение

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

В приведенном ниже примере программы демонстрируется применение оператораletдля создания еще одного перечислимого источника данных. В качестве входных данных в запрос вводится массив символьных строк, которые затем преобразуются в массивы типаchar.Для этой цели служит еще один метод обработки строк, называемыйToCharArray() и возвращающий массив, содержащий символы в строке. Полученный результат присваивается переменнойchrArray,которая затем используется во вложенном оператореfromдля извлечения отдельных символов из массива. И наконец, полученные символы сортируются в запросе, и из них формируется результирующая последовательность.

// Использовать оператор let в месте с вложенным оператором from.

using System; using System.Linq;

class LetDemo {

static void Main() {

string[] strs = { "alpha", "beta", "gamma" };

// Сформировать запрос на получение символов, возвращаемых из // строк в отсортированной последовательности. Обратите внимание // на применение вложенного оператора from, var chrs = from str in strs

let chrArray = str.ToCharArray()

from ch in chrArray orderby ch select ch;

Console.WriteLine("Отдельные символы, отсортированные по порядку:");

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

Console.WriteLine();

}

}

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

Отдельные символы, отсортированные по порядку: aaaaabeghlmmpt

Обратите внимание в данном примере программы на то, что в оператореletпеременнойchrArrayприсваивается ссылка на массив, возвращаемый методомstr.

ToCharArray().

let chrArray = str.ToCharArray()

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

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