Dictionary(Of TKey, TValue).ICollection(Of KeyValuePair(Of TKey, TValue)).CopyTo Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Copies the elements of the ICollection(Of T) to an array of type KeyValuePair(Of TKey, TValue), starting at the specified array index.
Assembly: mscorlib (in mscorlib.dll)
'Declaration Private Sub CopyTo ( _ array As KeyValuePair(Of TKey, TValue)(), _ index As Integer _ ) Implements ICollection(Of KeyValuePair(Of TKey, TValue)).CopyTo
Parameters
- array
- Type:
System.Collections.Generic.KeyValuePair(Of TKey, TValue)
()
The one-dimensional array of type KeyValuePair(Of TKey, TValue) that is the destination of the KeyValuePair(Of TKey, TValue) elements copied from the ICollection(Of T). The array must have zero-based indexing.
- index
- Type: System.Int32
The zero-based index in array at which copying begins.
Implements
ICollection(Of T).CopyTo(T(), Int32)| Exception | Condition |
|---|---|
| ArgumentNullException | array is Nothing. |
| ArgumentOutOfRangeException | index is less than 0. |
| ArgumentException | index is equal to or greater than the length of array. -or- The number of elements in the source ICollection(Of T) is greater than the available space from index to the end of the destination array. |
The following example shows how to use explicit interface implementations of the System.Collections.Generic.ICollection(Of T) generic interface to manipulate a Dictionary(Of TKey, TValue) object.
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 ' access it through the generic ICollection interface. The ' generic ICollection interface views the dictionary as a ' collection of KeyValuePair objects with the same type ' arguments as the dictionary. ' Dim openWith As ICollection(Of KeyValuePair(Of String, String)) _ = New Dictionary(Of String, String) ' Add some elements to the dictionary. When elements are ' added through the ICollection(Of T) interface, the keys ' and values must be wrapped in KeyValuePair objects. ' openWith.Add(New KeyValuePair(Of String, String)("txt", "notepad.exe")) openWith.Add(New KeyValuePair(Of String, String)("bmp", "paint.exe")) openWith.Add(New KeyValuePair(Of String, String)("dib", "paint.exe")) openWith.Add(New KeyValuePair(Of String, String)("rtf", "wordpad.exe")) outputBlock.Text &= vbCrLf For Each element As KeyValuePair(Of String, String) In openWith outputBlock.Text &= String.Format("{0}, {1}", element.Key, element.Value) & vbCrLf Next ' The Contains method also takes a KeyValuePair object. ' outputBlock.Text &= String.Format(vbLf & _ "Contains(KeyValuePair(""txt"", ""notepad.exe"")): {0}", _ openWith.Contains(New KeyValuePair(Of String, String)("txt", "notepad.exe"))) & vbCrLf ' The Remove method takes a KeyValuePair object.) ' ' Use the Remove method to remove a key/value pair. outputBlock.Text &= String.Format(vbLf & _ "Remove(New KeyValuePair(""dib"", ""paint.exe""))") & vbCrLf openWith.Remove(New KeyValuePair(Of String, String)("dib", "paint.exe")) outputBlock.Text &= vbCrLf For Each element As KeyValuePair(Of String, String) In openWith outputBlock.Text &= String.Format("{0}, {1}", element.Key, element.Value) & vbCrLf Next ' Create an array of KeyValuePair objects and copy the ' contents of the dictionary to it. Subtract one from the ' array size because Visual Basic allocates an extra array ' element. Dim copy(openWith.Count - 1) As KeyValuePair(Of String, String) openWith.CopyTo(copy, 0) ' List the contents of the array. ' outputBlock.Text &= vbCrLf For Each element As KeyValuePair(Of String, String) In copy outputBlock.Text &= String.Format("{0}, {1}", element.Key, element.Value) & vbCrLf Next End Sub End Class ' This code example produces the following output: ' 'txt, notepad.exe 'bmp, paint.exe 'dib, paint.exe 'rtf, wordpad.exe ' 'Contains(KeyValuePair("txt", "notepad.exe")): True ' 'Remove(New KeyValuePair("dib", "paint.exe")) ' 'txt, notepad.exe 'bmp, paint.exe 'rtf, wordpad.exe ' 'txt, notepad.exe 'bmp, paint.exe 'rtf, wordpad.exe