Making Request.QueryString writable (by clone/copy)
Every now and then I completely forget that the Request.QueryString (and Request.Form) object is read-only. Today I had a bit of functionality where I needed to remove a key/value from the collection - but the Remove() method (of the NameValueCollection object) throws an exception.
Unfortunately, the Request.QueryString's CopyTo method assigns the values to an ARRAY, not a NameValueCollection - losing functionality and flexibility.
You need to copy the Request.QueryString object to a new NameValueCollection instance, here's how:
NameValueCollection qs = new NameValueCollection(Request.QueryString);
Now you can add/remove the key/values to your hearts content!
Oh, yeah, remember to import the System.Collections.Specialized namespace too!