Fan.Sys.Uri.plusQuery C# (CSharp) Method

plusQuery() public method

public plusQuery ( Map q ) : Uri
q Map
return Uri
        public Uri plusQuery(Map q)
        {
            if (q == null || q.isEmpty()) return this;

              Map merge = m_query.dup().setAll(q);

              StringBuilder s = new StringBuilder(256);
              IDictionaryEnumerator en = merge.pairsIterator();
              while (en.MoveNext())
              {
            if (s.Length > 0) s.Append('&');
            string key = (string)en.Key;
            string val = (string)en.Value;
            appendQueryStr(s, key);
            s.Append('=');
            appendQueryStr(s, val);
              }

              Sections t = new Sections();
              t.scheme   = m_scheme;
              t.userInfo = m_userInfo;
              t.host     = m_host;
              t.port     = m_port;
              t.frag     = m_frag;
              t.pathStr  = m_pathStr;
              t.path     = m_path;
              t.query    = merge.ro();
              t.queryStr = s.ToString();
              return new Uri(t);
        }