HttpServer.HttpHelper.ParseQueryString C# (CSharp) Method

ParseQueryString() public static method

Parses a querystring.
public static ParseQueryString ( string queryString ) : HttpInput
queryString string Querystring (url decoded)
return HttpInput
        public static HttpInput ParseQueryString(string queryString)
        {
            if (queryString == null)
                throw new ArgumentNullException("queryString");
            if (queryString == String.Empty)
                return HttpInput.Empty;

            int state = 0;
            int startpos = 0;
            string name = null;
            HttpInput input = new HttpInput("QueryString");
            for (int i = 0; i < queryString.Length; ++i)
            {
                int newIndexPos;
                if (state == 0 && IsEqual(queryString, ref i, out newIndexPos))
                {
                    name = queryString.Substring(startpos, i - startpos);
                    i = newIndexPos;
                    startpos = i + 1;
                    ++state;
                }
                else if (state == 1 && IsAmp(queryString, ref i, out newIndexPos))
                {
                    Add(input, name, queryString.Substring(startpos, i - startpos));
                    i = newIndexPos;
                    startpos = i + 1;
                    state = 0;
                    name = null;
                }
            }

            if (state == 0 && !input.GetEnumerator().MoveNext())
                Add(input, queryString, String.Empty);
            else if (name != null && startpos <= queryString.Length)
                Add(input, name, queryString.Substring(startpos, queryString.Length - startpos));

            return input;
        }