private void ParseArgumentString(string argumentString) { argumentString = argumentString.ToLower(); if (!this.marshalers .Any(x => x.Key.Argument .Contains(argumentString))) { throw new ArgumentException(ErrorCode.UNEXPECTED_ARGUMENT, argumentString, null); } Marshaler m = this.marshalers .Where(x => x.Key.Argument .Any(k => k == argumentString)) .FirstOrDefault() .Value; this.argumentsFound.Add(argumentString); try { m.Set(currentArgument); } catch (BaseArgumentException errorCode) { errorCode.ErrorArgumentId = argumentString; throw errorCode; } }