26

I have a querystring alike value set in a plain string. I started to split string to get value out but I started to wonder that I can proabably write this in one line instead. Could you please advice if there is more optimal way to do this?

I am trying to read "123" and "abc" like in Request.QueryString but from normal string.

 protected void Page_Load(object sender, EventArgs e)
{
    string qs = "id=123&xx=abc";
    string[] urlInfo = qs.Split('&');
    string id = urlInfo[urlInfo.Length - 2];
    Response.Write(id.ToString());

}
jpkeisala
  • 8,566
  • 7
  • 30
  • 39

3 Answers3

58

You can do it this way:

using System.Collections.Specialized;

NameValueCollection query = HttpUtility.ParseQueryString(queryString);
Response.Write(query["id"]);

Hope it helps.

Nelson Reis
  • 4,780
  • 9
  • 43
  • 61
27

Look at HttpUtility.ParseQueryString. Don't reinvent the wheel.

RichardOD
  • 28,883
  • 9
  • 61
  • 81
3

RichardOD is on it with HttpUtility.ParseQueryString but don't forget to look at TryParse.

You can TryParse int, DateTimes etc

How do you test your Request.QueryString[] variables?

Community
  • 1
  • 1
Ian G
  • 29,468
  • 21
  • 78
  • 92