<p>Using the following code I get a nice formatted string:</p>

<pre><code>Request.QueryString.ToString 
</code></pre>

<p>Gives me something like: &amp;hello=world&amp;microsoft=sucks</p>

<p>But when I use this code to clone the collection to another object (of the same type) I get the Type() back from the ToString() method instead.</p>

<pre><code>System.Collections.Specialized.NameValueCollection variables = new System.Collections.Specialized.NameValueCollection(Request.QueryString);
if (!string.IsNullOrEmpty(variables["sid"]))
    variables.Remove("sid");
Response.Write(variables.ToString());
</code></pre>

<p>Is there a tidier way to output it rather than looking and building the string manually?</p>

Why do you want to copy the QueryString collection into a new NameValueCollection?
```
```
if (!string.IsNullOrEmpty(Request.QueryString["sid"]))
        Request.QueryString.Remove("sid");
```
```
Yes indeed, i am wrong, it is read only. So the essence is to use the Remove Method on your NameValuecollection:
```
```
System.Collections.Specialized.NameValueCollection variables = new System.Collections.Specialized.NameValueCollection(Request.QueryString);
if (!string.IsNullOrEmpty(variables["sid"]))
    variables.Remove("sid");
```
```