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()); }