public static bool AreTokensValid(ParameterDefinitions definitions, string[] tokens) { if (definitions == null) { throw new ArgumentNullException(nameof(definitions)); } if (tokens == null) { throw new ArgumentNullException(nameof(tokens)); } if (tokens.Length > definitions.Count) { return(false); } for (int i = 0; i < definitions.Count; i++) { ParamDef definition = definitions[i]; string token = tokens.Get(i, null); if (token != null && token.Length > 0) { if (!IsTokenValid(definition, token)) { return(false); } } else if (definition.DefaultValue == null) // Required param. { return(false); } } return(true); }