This documentation is archived and is not being maintained.

NameValueCollection Class

Represents a sorted collection of associated String keys and String values that can be accessed either with the key or with the index.

For a list of all members of this type, see NameValueCollection Members.


[Visual Basic]
Public Class NameValueCollection
   Inherits NameObjectCollectionBase
public class NameValueCollection : NameObjectCollectionBase
public __gc class NameValueCollection : public
class NameValueCollection extends NameObjectCollectionBase

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

This implementation does not provide a synchronized (thread-safe) wrapper for a NameValueCollection, but derived classes can create their own synchronized versions of the NameValueCollection using the SyncRoot property of the NameObjectCollectionBase class.

Enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads could still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.


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.

The capacity is the number of key-and-value pairs that the NameValueCollection can contain. The default initial capacity is zero. The capacity is automatically increased as required.

The hash code provider dispenses hash codes for keys in the NameValueCollection. The default hash code provider is the CaseInsensitiveHashCodeProvider.

The comparer determines whether two keys are equal. The default comparer is the CaseInsensitiveComparer.

In .NET Framework version 1.0, this class uses culture-sensitive string comparisons. However, in .NET Framework version 1.1 and later, this class uses CultureInfo.InvariantCulture when comparing strings. For more information about how culture affects comparisons and sorting, see Comparing and Sorting Data for a Specific Culture and Performing Culture-Insensitive String Operations.


Namespace: System.Collections.Specialized

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

Assembly: System (in System.dll)

See Also

NameValueCollection Members | System.Collections.Specialized Namespace | NameObjectCollectionBase | Performing Culture-Insensitive String Operations