有没有办法让所有查询string的名称/值对进入一个集合?

有没有办法让所有查询string的名称/值对进入一个集合?

我在.net中寻找一个内置的方式,如果不是的话,我可以在&上加载一个集合。

是的,使用HttpRequest.QueryString集合:

获取HTTP查询stringvariables的集合。

你可以像这样使用它:

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

那么, Request.QueryString已经是一个集合。 具体来说,这是一个NameValueCollection 。 如果您的代码在ASP.NET中运行,那就是您所需要的。

所以要回答你的问题:是的,有。

如果只有一个查询string表示为string,请使用HttpUtility.ParseQueryString将其parsing为一个NameValueCollection。

但是,如果这是HttpRequest的一部分,那么使用已经parsing的HttpRequest的QueryString属性。

你可以使用LINQ创build一个你可以在数组中访问的匿名对象列表:

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

HttpRequest类中的QueryString属性实际上是NameValueCollection类。 所有你需要做的是

NameValueCollection col = Request.QueryString;