Есть класс HttpValueCollection
, который используется в ASP.NET. Служит этот класс как раз для того, чтобы преобразовывать коллекцию элементов ключ-значение в строку запроса URI. К сожалению, напрямую инстанцировать объект этого класса не получится, потому что он является внутренним. Но можно вызвать статичекий метод System.Web.HttpUtility.ParseQueryString
, возвращающий экземпляр базового класса — NameValueCollection
:
var paramsCollection = System.Web.HttpUtility
.ParseQueryString(string.Empty); 1
paramsCollection["param1"] = "paramValue1"; 2
paramsCollection["param1"] = "paramValue1";
//...
var uri = new Uri("http://example.com");
uri.Query = paramsCollection.ToString(); 3
1 — метод ParseQueryString
возвращает обычную коллекцию NameValueCollection
, в которую можно добавлять ключи и значения. Но на самом деле это объект класса HttpValueCollection
и при вызове ToString
ключи-значения будут преобразованы в строку запроса.
2 — заполняем коллекцию.
3 — устанавливаем строку запроса для объекта URI.