select id,name
from friends
order by id=5 desc
(если вас не беспокоит порядок остальных, в противном случае, например, останутся по id asc )
select id,name
from friends
order by id=5 desc, id asc
Моя любимая сторонняя библиотека парсинга командной строки Синтаксический анализатор Командной строки , и я предполагаю, что это - то, к которому Вы обращаетесь. Новый выпуск был меньше чем 2 месяца назад и существуют регулярные фиксации. Если Вы хотите более зрелое предложение, Вы могли бы проверить консольную библиотеку в моно проект (извините, я, может казаться, не нахожу прямую ссылку на пространство имен в данный момент, но это - часть моно платформы)
Полагайте, что, как только Вы начинаете использовать этот синтаксический анализатор, необходимо будет или поддержать его сами или иначе зависеть от кого-то еще для поддержания его для Вас. Можно быть более обеспеченной записью собственное, начинающее с самого критического, непосредственного, требований. Я нашел, что не требуется слишком большой работы для создания некоторого довольно сложного парсинга командной строки для большинства основанных на консоли приложений, я продолжил работать.
я также нашел, что, когда парсинг является слишком сложным, может быть пора прекратить использовать командную строку.
Печально существует не создан в поддержке обработки этого стандартным способом. Вы изучили PowerShell? Я держал пари, что существует класс в той оболочке, которая делает точно, что Вы хотите или что-то подобное.
Я использую синтаксический анализатор из поваренной книги C# 3.0.
Все примеры из этой книги могут быть загружены здесь: http://examples.oreilly.com/9780596516109/
Поиск 'Аргументов' и Вы найдете его. Необходимо сделать некоторые небольшие изменения кода для вытаскивания его из всего этого в собственный класс, но это не большая проблема.
Это поддерживает все Ваши точки кроме последних двух (параметр, объединяющийся & пропавшие без вести пространства).
Я держу пари, что это не совсем, что Вы ищете, но:
у Кого-то здесь была та проблема, и его первая мысль была "эй, ocaml имеет довольно хороший!", и быстро портированный это к F#.
Взгляните на ndesk.options.
Это называют Моно. Опции теперь.
Популярным и довольно всесторонним синтаксическим анализатором командной строки C является GNU getopt. Это было портировано (или клонировано) для C#/.Net несколько раз. Некоторые из них включают:
Выберите! Существует несколько других, и Google может сказать Вам о тех,
Изменить: как указывает fatcat1111, эта функция не входила в окончательную версию .net 4.0.
В C # 4.0 есть неплохой вариант. Возможно, это пока не очень полезно, но вы можете подумать о том, чтобы посмотреть на что-то, что упростит переход к встроенному, когда он выйдет. Барт Де Смет рассказал об этом на своем B # blog
Я фанат переноса C # на OptParse, встроенную библиотеку на Python. Он довольно прост в использовании по сравнению с большинством других предложений здесь и содержит ряд полезных функций в дополнение к простому автоматическому синтаксическому анализу.