Как правило, в условии оператора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

Обратите внимание на то, что в оператореwhereданной программы используется один из методов обработки символьных строк под названиемEnds With (). Он возвращает логическое значениеtrue,если вызывающая его строка оканчивается последовательностью символов, указываемой в качестве аргумента этого метода.

Сортировка результатов запроса с помощью оператора orderby

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

Оператор orderby можно использовать для сортировки результатов запроса по одному или нескольким критериям. Рассмотрим для начала самый простой случай сортировки по одному элементу. Ниже приведена общая форма оператора orderby для сортировки результатов запроса по одному критерию:

orderbyэлемент порядок

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

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