¿Hay alguna manera de obtener todos los pares nombre / valor de la cadena de consulta en una colección?

¿Hay alguna manera de obtener todos los pares nombre / valor de la cadena de consulta en una colección?

Estoy buscando un sistema integrado en .net, si no, puedo dividir el & y cargar una colección.

Sí, use la colección HttpRequest.QueryString :

Obtiene la colección de variables de cadena de consulta HTTP.

Puedes usarlo así:

 foreach (String key in Request.QueryString.AllKeys) { Response.Write("Key: " + key + " Value: " + Request.QueryString[key]); } 

Bueno, Request.QueryString ya ES una colección. Específicamente, es una NameValueCollection . Si su código se ejecuta en ASP.NET, eso es todo lo que necesita.

Entonces para responder a su pregunta: Sí, la hay.

Si tiene una cadena de consulta SÓLO representada como una cadena, use HttpUtility.ParseQueryString para analizarla en NameValueCollection.

Sin embargo, si esto es parte de una HttpRequest, entonces use la propiedad QueryString ya analizada de su HttpRequest.

Puede usar LINQ para crear una Lista de objetos anónimos a la que puede acceder dentro de una matriz:

 var qsArray = Request.QueryString.AllKeys .Select(key => new { Name=key.ToString(), Value=Request.QueryString[key.ToString()]}) .ToArray(); 

QueryString propiedad QueryString en la clase HttpRequest es realmente la clase NameValueCollection . Todo lo que necesitas hacer es

NameValueCollection col = Request.QueryString;