Читаем C# 4.0: полное руководство полностью

Ниже приведен пример программы, в которой оператор 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 {

  public string FirstName { get; private set; }

  public string LastName { get; private set; }

  public double Balance { get; private set; }

  public string AccountNumber { get; private set; }

  public Account(string fn, string In, string accnum, double b) {

    FirstName = fn;

    LastName = In;

    AccountNumber = accnum;

    Balance = b;

  }

}

class OrderbyDemo {

  static void Main() {

    // Сформировать исходные данные.

    Account[] accounts =

     {new Account("Том", "Смит", "132CK", 100.23),

      new Account("Том", "Смит", "132CD", 10000.00),

      new Account("Ральф", "Джонс", "436CD", 1923.85),

      new Account("Ральф", "Джонс", "454MM", 987.132),

      new Account("Тед", "Краммер", "897CD", 3223.19),

      new Account("Ральф", "Джонс", "434CK", -123.32),

      new Account("Capa", "Смит", "543MM", 5017.40),

      new Account("Capa", "Смит", "547CD", 34955.79),

      new Account("Capa", "Смит", "843CK", 345.00),

      new Account("Альберт", "Смит", "445CK", -213.67),

      new Account("Бетти", "Краммер","968MM",5146.67),

      new Account("Карл", "Смит", "078CD", 15345.99),

      new Account("Дженни", "Джонс", "108CK", 10.98)

     };

    // Сформировать запрос на получение сведений о

    // банковских счетах в отсортированном порядке.

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

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

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных
Adobe InDesign CS3
Adobe InDesign CS3

Книга посвящена верстке и макетированию в программе Adobe InDesign CS3. Помимо того что в ней описываются возможности программы, рассматриваются также принципы и традиции верстки, приводятся примеры решения типичных задач. Все это позволит читателю не только овладеть богатым инструментарием программы, но и грамотно применять его.Материал книги разделен на логические части: теоретические сведения, инструментарий программы, решение задач, – а также рассчитан на два уровня подготовки читателей – начинающих и опытных пользователей, что выгодно отличает книгу от других изданий. Это позволит применять ее как новичкам для знакомства с программой, так и пользователям со стажем для пополнения своих знаний.

Владимир Гавриилович Завгородний , Владимир Завгородний

Программирование, программы, базы данных / Программное обеспечение / Книги по IT