Obtenga la cadena que se encuentra después del signo de interrogación, divida la cadena en el carácter '&'. Luego, para cada cadena que se devuelve, se divide nuevamente en el carácter '='.
Incluso podría crear un método de extensión para él.
public static class StringExtensions
{
public Dictionary<string, string> ExtractQueryStringValues(this string target)
{
string queryString = target.Split (target.IndexOf ('?') + 1);
string[] keyvaluePairs = queryString.Split ('&');
Dictionary<string, string> result = new Dictionary<string, string>();
foreach(string pair in keyvaluePairs)
{
var tmp = pair.Split ('=');
result.Add (tmp[0], tmp[1]);
}
return result;
}
}
Algo así. Recuerde, no es seguro, ya que no maneja cada borde de caja. (Por ejemplo, dada una cadena que no tiene nada después del primer signo de interrogación, etc.), pero debería comenzar.
Bien, no sabía sobre HttpUtility. (Pero creo que es porque está en System.Web, un espacio de nombres con el que no estoy tan familiarizado). –
También entonces podrías usar NameValueCollectionExtensions.CopyTo (this NameValueCollection, IDictionary << string, object >>) para obtener un IDictionary "real". – JohannesH
Bla ... Un solo signo "mayor que" en los comentarios no funciona. Los comentarios sobre SO necesitan algunas mejoras. – JohannesH