public Arguments(string[] args)
{
_params = new StringDictionary();
Regex spliter = new Regex(@"^-{1,2}|^/|=|:", RegexOptions.IgnoreCase | RegexOptions.Compiled);
Regex remover = new Regex(@"^['""]?(.*?)['""]?$", RegexOptions.IgnoreCase | RegexOptions.Compiled);
string parm = null;
string[] parts;
foreach (var a in args)
{
parts = spliter.Split(a, 3);
switch (parts.Length)
{
case 1:
if (parm != null)
{
if (!_params.ContainsKey(parm))
{
parts[0] = remover.Replace(parts[0], "$1");
_params.Add(parm, parts[0]);
}
parm = null;
}
break;
case 2:
if (parm != null)
{
if (!_params.ContainsKey(parm))
_params.Add(parm, "true");
}
parm = parts[1];
break;
case 3:
if (parm != null)
{
if (!_params.ContainsKey(parm))
_params.Add(parm, "true");
}
parm = parts[1];
if (!_params.ContainsKey(parm))
{
parts[2] = remover.Replace(parts[2], "$1");
_params.Add(parm, parts[2]);
}
parm = null;
break;
}
}
if (parm != null)
{
if (!_params.ContainsKey(parm))
_params.Add(parm, "true");
}
}