public static TValue?GetNullableValueAs <TValue>(this NameValueCollection collection, string key)
            where TValue : struct
        {
            var resultStr = collection.GetValue(key, null);

            if (resultStr == null)
            {
                return(default(TValue?));
            }

            return(ParsingUtility.Parse <TValue>(resultStr));
        }