SortedDictionary<TKey, TValue>.Item Property (TKey)
Gets or sets the value associated with the specified key.
Assembly: System (in System.dll)
Parameters
- key
-
Type:
TKey
The key of the value to get or set.
Property Value
Type: TValueThe value associated with the specified key. If the specified key is not found, a get operation throws a KeyNotFoundException, and a set operation creates a new element with the specified key.
| Exception | Condition |
|---|---|
| ArgumentNullException | key is null. |
| KeyNotFoundException | The property is retrieved and key does not exist in the collection. |
This property provides the ability to access a specific element in the collection by using the following C# syntax: myCollection[key] (myCollection(key) in Visual Basic).
You can also use the Item property to add new elements by setting the value of a key that does not exist in the SortedDictionary<TKey, TValue>; for example, myCollection["myNonexistentKey"] = myValue. However, if the specified key already exists in the SortedDictionary<TKey, TValue>, setting the Item property overwrites the old value. In contrast, the Add method does not modify existing elements.
A key cannot be null, but a value can be, if the value type TValue is a reference type.
The C# language uses the keyword to define the indexers instead of implementing the Item property. Visual Basic implements Item as a default property, which provides the same indexing functionality.
Getting the value of this property is an O(log n) operation; setting the property is also an O(log n) operation.
The following code example uses the Item property (the indexer in C#) to retrieve values, demonstrating that a KeyNotFoundException is thrown when a requested key is not present, and showing that the value associated with a key can be replaced.
The example also shows how to use the TryGetValue method as a more efficient way to retrieve values if a program often must try key values that are not in the dictionary.
This code example is part of a larger example provided for the SortedDictionary<TKey, TValue> class.
// The Item property is another name for the indexer, so you // can omit its name when accessing elements. Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]); // The indexer can be used to change the value associated // with a key. openWith["rtf"] = "winword.exe"; Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]); // If a key does not exist, setting the indexer for that key // adds a new key/value pair. openWith["doc"] = "winword.exe";
// The indexer throws an exception if the requested key is // not in the dictionary. try { Console.WriteLine("For key = \"tif\", value = {0}.", openWith["tif"]); } catch (KeyNotFoundException) { Console.WriteLine("Key = \"tif\" is not found."); }
// When a program often has to try keys that turn out not to // be in the dictionary, TryGetValue can be a more efficient // way to retrieve values. string value = ""; if (openWith.TryGetValue("tif", out value)) { Console.WriteLine("For key = \"tif\", value = {0}.", value); } else { Console.WriteLine("Key = \"tif\" is not found."); }
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1