Share via


Dictionary<TKey, TValue> Constructor (Int32)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

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.

Namespace:  System.Collections.Generic
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Sub New ( _
    capacity As Integer _
)
public Dictionary(
    int capacity
)

Parameters

Exceptions

Exception Condition
ArgumentOutOfRangeException

capacity is less than 0.

Remarks

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.

Examples

The following code example creates a dictionary with an initial capacity of 4 and populates it with 4 entries.

Imports System.Collections.Generic

Public Class Example

   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      ' Create a new dictionary of strings, with string keys and
      ' an initial capacity of 4.
      Dim openWith As New Dictionary(Of 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 &= vbCrLf
      For Each kvp As KeyValuePair(Of String, String) In openWith
         outputBlock.Text &= String.Format("Key = {0}, Value = {1}", _
             kvp.Key, kvp.Value) & vbCrLf
      Next kvp

   End Sub

End Class

' 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
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
 */

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.