гдеэлементобозначает конкретный элемент, по которому проводится сортировка. Это может быть весь элемент, хранящийся в источнике данных, или только часть одного поля в данном элементе. Апорядокобозначает порядок сортировки по нарастающей или убывающей с обязательным добавлением ключевого слова ascending или descending соответственно. По умолчанию сортировка проводится по нарастающей, и поэтому ключевое слово ascending, как правило, не указывается.

Ниже приведен пример программы, в которой оператор orderby используется для извлечения значений из массива типаintпо нарастающей.

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

using System; using System.Linq;

class OrderbyDemo { static void Main() {

int[] nums = { 10, -19, 4, 7, 2, -5, 0 };

// Сформировать запрос на получение значений в отсортированном порядке, var posNums = from n in nums orderby n select n;

Console.Write("Значения по нарастающей: ");

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

При выполнении этой программы получается следующий результат.

Значения по нарастающей: -19 -5 0 2 4 7 10

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

var posNums = from n in nums

orderby n descending select n;

Попробовав выполнить этот запрос, вы получите значения в обратном порядке. Зачастую сортировка результатов запроса проводится по единственному критерию. Тем не менее для сортировки по нескольким критериям служит приведенная ниже форма оператора orderby.

orderbyэлемент_А направление,элемент_В направление,элемент_С направление,...

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

// Сортировать результаты запроса по нескольким // критериям, используя оператор orderby.

using System; using System.Linq;

class Account {

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

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