Dictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>.CopyTo Method (KeyValuePair<TKey, TValue>[], Int32)
Copies the elements of the ICollection<T> to an array of type KeyValuePair<TKey, TValue>, starting at the specified array index.
Assembly: mscorlib (in mscorlib.dll)
void ICollection<KeyValuePair<TKey, TValue>>.CopyTo( KeyValuePair<TKey, TValue>[] array, int index )
Parameters
- array
-
Type:
System.Collections.Generic.KeyValuePair<TKey, TValue>[]
The one-dimensional array of type KeyValuePair<TKey, TValue> that is the destination of the KeyValuePair<TKey, TValue> elements copied from the ICollection<T>. The array must have zero-based indexing.
- index
-
Type:
System.Int32
The zero-based index in array at which copying begins.
Implements
ICollection<T>.CopyTo(T[], Int32)| Exception | Condition |
|---|---|
| ArgumentNullException | array is null. |
| ArgumentOutOfRangeException | index is less than 0. |
| ArgumentException | The number of elements in the source ICollection<T> is greater than the available space from index to the end of the destination array. |
The following example shows how to use the ICollection<KeyValuePair<TKey, TValue>>.Add, ICollection<KeyValuePair<TKey, TValue>>.Contains, ICollection<KeyValuePair<TKey, TValue>>.CopyTo, and ICollection<KeyValuePair<TKey, TValue>>.Remove methods of the ICollection<T> generic interface to manipulate a Dictionary<TKey, TValue> object.
using System; using System.Collections.Generic; public class Example { public static void Main() { // 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. // ICollection<KeyValuePair<String, String>> openWith = new Dictionary<String, String>(); // Add some elements to the dictionary. When elements are // added through the ICollection<T> interface, the keys // and values must be wrapped in KeyValuePair objects. // openWith.Add(new KeyValuePair<String,String>("txt", "notepad.exe")); openWith.Add(new KeyValuePair<String,String>("bmp", "paint.exe")); openWith.Add(new KeyValuePair<String,String>("dib", "paint.exe")); openWith.Add(new KeyValuePair<String,String>("rtf", "wordpad.exe")); Console.WriteLine(); foreach( KeyValuePair<string, string> element in openWith ) { Console.WriteLine("{0}, {1}", element.Key, element.Value); } // The Contains method also takes a KeyValuePair object. // Console.WriteLine( "\nContains(KeyValuePair(\"txt\", \"notepad.exe\")): {0}", openWith.Contains(new KeyValuePair<String,String>("txt", "notepad.exe"))); // The Remove method takes a KeyValuePair object.) // // Use the Remove method to remove a key/value pair. Console.WriteLine("\nRemove(new KeyValuePair(\"dib\", \"paint.exe\"))"); openWith.Remove(new KeyValuePair<String,String>("dib", "paint.exe")); Console.WriteLine(); foreach( KeyValuePair<string, string> element in openWith ) { Console.WriteLine("{0}, {1}", element.Key, element.Value); } // Create an array of KeyValuePair objects and copy the // contents of the dictionary to it. // KeyValuePair<string, string>[] copy = new KeyValuePair<string, string>[openWith.Count]; openWith.CopyTo(copy, 0); // List the contents of the array. // Console.WriteLine(); foreach( KeyValuePair<string, string> element in copy ) { Console.WriteLine("{0}, {1}", element.Key, element.Value); } } } /* 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 */
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1