Mi preferencia personal aquí es reescribir la consulta o trabajar con un NameValueCollection en un punto más bajo, pero hay momentos en que la lógica de negocio hace que ni de esos muy útiles y algunas veces la reflexión realmente es lo que necesitas. En esas circunstancias, simplemente puede apagar la bandera de solo lectura por un momento así:
// reflect to readonly property
PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
// make collection editable
isreadonly.SetValue(this.Request.QueryString, false, null);
// remove
this.Request.QueryString.Remove("foo");
// modify
this.Request.QueryString.Set("bar", "123");
// make collection readonly again
isreadonly.SetValue(this.Request.QueryString, true, null);
Por favor, explique más de lo que su objetivo son. No creo que esté buscando una forma de editar el campo de dirección de los usuarios, ¿verdad? –