using System;
using System.Collections;
using System.Collections.Specialized;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
public class SamplesNameValueCollection
{
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
public static void Main()
{
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// Creates and initializes a new NameValueCollection.
NameValueCollection myCol = new NameValueCollection();
myCol.Add( "red", "rojo" );
myCol.Add( "green", "verde" );
myCol.Add( "blue", "azul" );
myCol.Add( "red", "rouge" );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// Displays the values in the NameValueCollection in two different ways.
Console.WriteLine( "Displays the elements using the AllKeys property and the Item (indexer) property:" );
PrintKeysAndValues( myCol );
Console.WriteLine( "Displays the elements using GetKey and Get:" );
PrintKeysAndValues2( myCol );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// Gets a value either by index or by key.
Console.WriteLine( "Index 1 contains the value {0}.", myCol[1] );
Console.WriteLine( "Key \"red\" has the value {0}.", myCol["red"] );
Console.WriteLine();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// Copies the values to a string array and displays the string array.
String[] myStrArr = new String[myCol.Count];
myCol.CopyTo( myStrArr, 0 );
Console.WriteLine( "The string array contains:" );
foreach ( String s in myStrArr )
Console.WriteLine( " {0}", s );
Console.WriteLine();
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// Searches for a key and deletes it.
myCol.Remove( "green" );
Console.WriteLine( "The collection contains the following elements after removing \"green\":" );
PrintKeysAndValues( myCol );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// Clears the entire collection.
myCol.Clear();
Console.WriteLine( "The collection contains the following elements after it is cleared:" );
PrintKeysAndValues( myCol );
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
public static void PrintKeysAndValues( NameValueCollection myCol )
{
IEnumerator myEnumerator = myCol.GetEnumerator();
Console.WriteLine( " KEY VALUE" );
foreach ( String s in myCol.AllKeys )
Console.WriteLine( " {0,-10} {1}", s, myCol[s] );
Console.WriteLine();
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
public static void PrintKeysAndValues2( NameValueCollection myCol )
{
Console.WriteLine( " [INDEX] KEY VALUE" );
for ( int i = 0; i < myCol.Count; i++ )
Console.WriteLine( " [{0}] {1,-10} {2}", i, myCol.GetKey(i), myCol.Get(i) );
Console.WriteLine();
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//*
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
This code produces the following output.
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Displays the elements using the AllKeys property and the Item (indexer) property:
KEY VALUE
red rojo,rouge
green verde
blue azul
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Displays the elements using GetKey and Get:
[INDEX] KEY VALUE
[0] red rojo,rouge
[1] green verde
[2] blue azul
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Index 1 contains the value verde.
Key "red" has the value rojo,rouge.
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
The string array contains:
rojo,rouge
verde
azul
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
The collection contains the following elements after removing "green":
KEY VALUE
red rojo,rouge
blue azul
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
The collection contains the following elements after it is cleared:
KEY VALUE
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
*/
Represents a collection of associated
String keys and
String values that can be
accessed either with the key or with the index
This collection is based on the NameObjectCollectionBase class. However, unlike the NameObjectCollectionBase, this class stores multiple string values under a single key.
This class can be used for headers, query strings and form data.
Each element is a key/value pair.
The capacity of a NameValueCollection is the number of elements the NameValueCollection can hold. As elements are added to a NameValueCollection, the capacity is automatically increased as required through reallocation.