Вы не можете ссылаться на сам документ в обновлении (пока). Вам нужно будет перебирать документы и обновлять каждый документ с помощью функции. См. этот ответ для примера, или этот для серверной стороны eval()
.
Вы можете сделать это с помощью linq следующим образом.
string query = "id=3123123&userId=44423&format=json";
Dictionary<string,string> dicQueryString =
query.Split('&')
.ToDictionary(c => c.Split('=')[0],
c => Uri.UnescapeDataString(c.Split('=')[1]));
string userId = dicQueryString["userID"];
Редактировать
Если вы можете использовать HttpUtility.ParseQueryString , то это будет намного проще и не будет чувствительным к регистру, как в чехол LinQ.
Если вы хотите избежать зависимости от System.Web, которая требуется для использования HttpUtility.ParseQueryString , вы можете использовать метод расширения Uri
ParseQueryString
из System.Net.Http
.
Обратите внимание, что вы должны преобразовать тело ответа в действительное Uri
, чтобы ParseQueryString
работал.
Также обратите внимание, что в документе MSDN этот метод является методом расширения для класса Uri, поэтому вам необходимо обратиться к сборке System.Net.Http.Formatting (в System.Net.Http.Formatting.dll). Я попытался установить его с помощью пакета nuget с именем «System.Net.Http.Formatting», и он отлично работает.
string body = "value1=randomvalue1&value2=randomValue2";
// "http://localhost/query?" is added to the string "body" in order to create a valid Uri.
string urlBody = "http://localhost/query?" + body;
NameValueCollection coll = new Uri(urlBody).ParseQueryString();