System.Collections.Specialized.NameValueCollection
ne pas soutien, mais une classe interne dérivée System.Web.HttpValueCollection
DOES (en remplaçant ToString()
).
Malheureusement (étant interne), vous ne pouvez pas instancier cette classe directement, mais un est renvoyé par HttpUtility.ParseQueryString()
(et vous pouvez l'appeler avec String.Empty
, mais pas Null
).
Une fois que vous avez un HttpValueCollection
, vous pouvez le remplir en appelant Add()
de votre NameValueCollection
d'origine, avant de finalement appeler ToString()
.
var nameValueCollection = new NameValueCollection {{"a","b"},{"c","d"}};
var httpValueCollection = System.Web.HttpUtility.ParseQueryString(String.Empty);
httpValueCollection.Add(nameValueCollection);
var qs = httpValueCollection.ToString();
nameValueCollection.ToString() = "System.Collections.Specialized.NameValueCollection" httpValueCollection.ToString() = "a = b = c & d"
Questions similaires http://stackoverflow.com/questions/229925/outputing-a-manipulated-querystring-in-c/ http://stackoverflow.com/questions/829080/how-to-build-a- query-string-for-a-url-in-c – Palani