Ceci est un post assez ancien, mais voici quelque chose que j'ai conçu et utilisé dans toutes mes applications console. C'est juste un petit fragment de code qui peut être injecté dans un seul fichier et tout fonctionnera.
http://www.ananthonline.net/blog/dotnet/parsing-command-line-arguments-with-c-linq
Edit: Il est maintenant disponible sur Nuget, et fait partie du projet open-source CodeBlocks.
Il a été conçu pour être utilisé de manière intuitive et déclarative, comme si (un autre exemple d'utilisation here):
args.Process(
// Usage here, called when no switches are found
() => Console.WriteLine("Usage is switch0:value switch:value switch2"),
// Declare switches and handlers here
// handlers can access fields from the enclosing class, so they can set up
// any state they need.
new CommandLine.Switch(
"switch0",
val => Console.WriteLine("switch 0 with value {0}", string.Join(" ", val))),
new CommandLine.Switch(
"switch1",
val => Console.WriteLine("switch 1 with value {0}", string.Join(" ", val)), "s1"),
new CommandLine.Switch(
"switch2",
val => Console.WriteLine("switch 2 with value {0}", string.Join(" ", val))));
Jon, je suis d'accord - ne voit pas cette question avant de poster une réponse ici. Je vais poster ma réponse là-bas (je suis surpris que personne n'ait mentionné CSharpOptParse pour le moment). –