using System.Collections.Generic;
public static void Main()
var args = "--Bar --Foo MyStuff".Split();
var parsedArgs = ParseArgs(args);
Console.WriteLine(parsedArgs.Foo);
Console.WriteLine(parsedArgs.Bar);
Console.WriteLine(parsedArgs.NotDefined);
public static dynamic ParseArgs(string[] args)
IDictionary<string,object> result = new ExpandoObject();
for(int i = 0; i < args.Length; i++)
if(args[i].StartsWith("--"))
if(i+1 < args.Length && !args[i+1].StartsWith("--"))
result.Add(args[i].Substring(2), args[i+1]);
result.Add(args[i].Substring(2), true);