Dictionary<TKey, TValue> Constructor (Int32)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Initializes a new instance of the Dictionary<TKey, TValue> class that is empty, has the specified initial capacity, and uses the default equality comparer for the key type.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- capacity
- Type: System.Int32
The initial number of elements that the Dictionary<TKey, TValue> can contain.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | capacity is less than 0. |
Every key in a Dictionary<TKey, TValue> must be unique according to the default equality comparer.
The capacity of a Dictionary<TKey, TValue> is the number of elements that can be added to the Dictionary<TKey, TValue> before resizing is necessary. As elements are added to a Dictionary<TKey, TValue>, the capacity is automatically increased as required by reallocating the internal array.
If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the Dictionary<TKey, TValue>.
Dictionary<TKey, TValue> requires an equality implementation to determine whether keys are equal. This constructor uses the default generic equality comparer, EqualityComparer<T>.Default. If type TKey implements the System.IEquatable<T> generic interface, the default equality comparer uses that implementation. Alternatively, you can specify an implementation of the IEqualityComparer<T> generic interface by using a constructor that accepts a comparer parameter.
This constructor is an O(1) operation.
The following code example creates a dictionary with an initial capacity of 4 and populates it with 4 entries.
using System; using System.Collections.Generic; public class Example { public static void Demo(System.Windows.Controls.TextBlock outputBlock) { // Create a new dictionary of strings, with string keys and // an initial capacity of 4. Dictionary<string, string> openWith = new Dictionary<string, string>(4); // Add 4 elements to the dictionary. openWith.Add("txt", "notepad.exe"); openWith.Add("bmp", "paint.exe"); openWith.Add("dib", "paint.exe"); openWith.Add("rtf", "wordpad.exe"); // List the contents of the dictionary. outputBlock.Text += "\n"; foreach (KeyValuePair<string, string> kvp in openWith) { outputBlock.Text += String.Format("Key = {0}, Value = {1}", kvp.Key, kvp.Value) + "\n"; } } } /* This code example produces the following output: Key = txt, Value = notepad.exe Key = bmp, Value = paint.exe Key = dib, Value = paint.exe Key = rtf, Value = wordpad.exe */