Supports multi-value query strings, using any IEnumerable as a value. IDictionary dict = new Hashtable(); dict.Add("id", 5); dict.Add("selectedItem", new int[] { 2, 4, 99 }); string querystring = BuildQueryString(dict); // should result in: "id=5&selectedItem=2&selectedItem=4&selectedItem=99&"