I have a console application called MyTool.exe
What is the simplest way to collect the named arguments passed to this console applicaiton and then to put them in a Dictionarty<string, string>()
which will have the argument name as the key and the value as the argument?
for example:
MyTool foo=123432 bar=Alora barFoo=45.9
I should be able to obtain a dictionary which will be:
MyArguments["foo"]=123432 MyArguments["bar"]="Alora" MyArguments["barFoo"]="45.9"
Use this Nuget package
Takes seconds to configure and adds instant professional touch to your application.
// Define a class to receive parsed values class Options { [Option('r', "read", Required = true, HelpText = "Input file to be processed.")] public string InputFile { get; set; } [Option('v', "verbose", DefaultValue = true, HelpText = "Prints all messages to standard output.")] public bool Verbose { get; set; } [ParserState] public IParserState LastParserState { get; set; } [HelpOption] public string GetUsage() { return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current)); } } // Consume them static void Main(string[] args) { var options = new Options(); if (CommandLine.Parser.Default.ParseArguments(args, options)) { // Values are available here if (options.Verbose) Console.WriteLine("Filename: {0}", options.InputFile); } }
Here's how this can be done in the most simple way:
static void Main(string[] args) { var arguments = new Dictionary<string, string>(); foreach (string argument in args) { string[] splitted = argument.Split('='); if (splitted.Length == 2) { arguments[splitted[0]] = splitted[1]; } } }
Note that:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With