public void Parse(string queryString, ref T optionListObject) { var values = UriUtils.ParseQueryString(queryString); foreach (var kvp in values) { IOption <T> option; if (optionsMap.TryGetValue(kvp.Key, out option)) { var stringValue = kvp.Value; if (stringValue != option.DefaultValue) { option.Set(optionListObject, stringValue); } } } }