public ParsedCommandLineParameters ParseCommandLineParameters(string[] args)
        {
            var result             = new ParsedCommandLineParameters();
            var remainingArguments = new List <string>();

            for (int i = 0; i < args.Length; i++)
            {
                var arg = args[i];

                if (arg.StartsWith("/"))
                {
                    ParsedCommandLineParameter parameter = ParseParameter(args, ref i);

                    if (parameter != null)
                    {
                        result.Parameters.Add(parameter);
                    }
                }
                else
                {
                    remainingArguments.Add(arg);
                }
            }

            result.RemainingArguments = remainingArguments.ToArray();

            return(result);
        }
        public void IfParameterDo(string name, Action <string> withParameter)
        {
            ParsedCommandLineParameter parameter = Parameters.FirstOrDefault(p => p.Name == name);

            if (parameter != null)
            {
                Parameters.Remove(parameter);
                withParameter(parameter.Value);
            }
        }