Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HttpValueCollection and NameValueCollection

Tags:

c#

What is the difference between HttpValueCollection and NameValueCollection?
If possible please explain with example.

Thanks

like image 884
Amit Soni Avatar asked Sep 22 '11 12:09

Amit Soni


People also ask

What is NameValueCollection?

NameValueCollection is used to store a collection of associated String keys and String values that can be accessed either with the key or with the index. It is very similar to C# HashTable, HashTable also stores data in Key , value format . NameValueCollection can hold multiple string values under a single key.

Is NameValueCollection case sensitive?

The default comparer is a CaseInsensitiveComparer that uses the conventions of the invariant culture; that is, key comparisons are case-insensitive by default. To perform case-sensitive key comparisons, call the NameValueCollection.

How do you serialize NameValueCollection?

NameValueCollection Data = new NameValueCollection(); Data. Add("foo","baa"); string json = new JavaScriptSerializer(). Serialize(Data);


1 Answers

NameValueCollection is case sensitive for the keys, HttpValueCollection isn't. Also HttpValueCollection is an internal class that derives from NameValueCollection that you are never supposed to use directly in your code. Another property of HttpValueCollection is that it automatically url encodes values when you add them to this collection.

Here's how to use the HttpValueCollection class:

class Program {     static void Main()     {         // returns an implementation of NameValueCollection         // which in fact is HttpValueCollection         var values = HttpUtility.ParseQueryString(string.Empty);         values["param1"] = "v&=+alue1";         values["param2"] = "value2";*          // prints "param1=v%26%3d%2balue1&param2=value2"         Console.WriteLine(values.ToString());     } } 
like image 183
Darin Dimitrov Avatar answered Sep 19 '22 17:09

Darin Dimitrov