internal virtual string ToString(bool urlencoded, IDictionary excludeKeys)
            {
                int count = this.Count;

                if (count == 0)
                {
                    return(string.Empty);
                }
                StringBuilder stringBuilder = new StringBuilder();

                for (int i = 0; i < count; i++)
                {
                    string text = this.GetKey(i);
                    if (excludeKeys == null || text == null || excludeKeys[text] == null)
                    {
                        if (urlencoded)
                        {
                            text = XmlaHttpUtility.UrlEncodeUnicode(text);
                        }
                        string    value     = (text != null) ? (text + "=") : string.Empty;
                        ArrayList arrayList = (ArrayList)base.BaseGet(i);
                        int       num       = (arrayList != null) ? arrayList.Count : 0;
                        if (stringBuilder.Length > 0)
                        {
                            stringBuilder.Append('&');
                        }
                        if (num == 1)
                        {
                            stringBuilder.Append(value);
                            string value2 = (string)arrayList[0];
                            if (urlencoded)
                            {
                                value2 = XmlaHttpUtility.UrlEncodeUnicode(value2);
                            }
                            stringBuilder.Append(value2);
                        }
                        else if (num == 0)
                        {
                            stringBuilder.Append(value);
                        }
                        else
                        {
                            for (int j = 0; j < num; j++)
                            {
                                if (j > 0)
                                {
                                    stringBuilder.Append('&');
                                }
                                stringBuilder.Append(value);
                                string value2 = (string)arrayList[j];
                                if (urlencoded)
                                {
                                    value2 = XmlaHttpUtility.UrlEncodeUnicode(value2);
                                }
                                stringBuilder.Append(value2);
                            }
                        }
                    }
                }
                return(stringBuilder.ToString());
            }