Dictionary<TKey,TValue>.IDictionary.Item[Object] Dictionary<TKey,TValue>.IDictionary.Item[Object] Dictionary<TKey,TValue>.IDictionary.Item[Object] Property

定義

取得或設定具有指定之索引鍵的值。Gets or sets the value with the specified key.

property System::Object ^ System::Collections::IDictionary::Item[System::Object ^] { System::Object ^ get(System::Object ^ key); void set(System::Object ^ key, System::Object ^ value); };
object System.Collections.IDictionary.Item[object key] { get; set; }
 Property Item(key As Object) As Object Implements IDictionary.Item

參數

key
Object Object Object

要取得之值的索引鍵。The key of the value to get.

屬性值

與指定的索引鍵關聯的值,如果 key 不在字典中,或 key 的型別無法指派給 Dictionary<TKey,TValue>TKey 索引鍵型別則為 nullThe value associated with the specified key, or null if key is not in the dictionary or key is of a type that is not assignable to the key type TKey of the Dictionary<TKey,TValue>.

實作

例外狀況

正在指定值,而且 key 是無法指派給 Dictionary<TKey,TValue>TKey 索引鍵型別的型別。A value is being assigned, and key is of a type that is not assignable to the key type TKey of the Dictionary<TKey,TValue>.

-或--or- 正在指定值,而且 value 是無法指派給 Dictionary<TKey,TValue>TValue 實值型別的型別。A value is being assigned, and value is of a type that is not assignable to the value type TValue of the Dictionary<TKey,TValue>.

範例

下列程式碼範例示範如何使用IDictionary.Item[Object] System.Collections.IDictionary介面Dictionary<TKey,TValue>的屬性(中C#的索引子)和,以及屬性與Dictionary<TKey,TValue>.Item[TKey]屬性不同的方式。The following code example shows how to use the IDictionary.Item[Object] property (the indexer in C#) of the System.Collections.IDictionary interface with a Dictionary<TKey,TValue>, and ways the property differs from the Dictionary<TKey,TValue>.Item[TKey] property.

此範例顯示,如同Dictionary<TKey,TValue>.Item[TKey]屬性Dictionary<TKey,TValue>.IDictionary.Item[Object] ,屬性可以變更與現有索引鍵關聯的值,而且如果指定的索引鍵不在字典中,則可以用來加入新的索引鍵/值組。The example shows that, like the Dictionary<TKey,TValue>.Item[TKey] property, the Dictionary<TKey,TValue>.IDictionary.Item[Object] property can change the value associated with an existing key and can be used to add a new key/value pair if the specified key is not in the dictionary. 此範例也會顯示與Dictionary<TKey,TValue>.Item[TKey]屬性Dictionary<TKey,TValue>.IDictionary.Item[Object]不同的是,如果key不在字典中,則屬性不會擲回例外狀況,而是改為傳回 null 參考。The example also shows that unlike the Dictionary<TKey,TValue>.Item[TKey] property, the Dictionary<TKey,TValue>.IDictionary.Item[Object] property does not throw an exception if key is not in the dictionary, returning a null reference instead. 最後,此範例會示範如果Dictionary<TKey,TValue>.IDictionary.Item[Object] key不是正確的資料類型,取得屬性會傳回 null 參考,而且如果key不是正確的資料類型,則設定屬性會擲回例外狀況。Finally, the example demonstrates that getting the Dictionary<TKey,TValue>.IDictionary.Item[Object] property returns a null reference if key is not the correct data type, and that setting the property throws an exception if key is not the correct data type.

此程式碼範例是較大範例的一部分,包括針對IDictionary.Add方法提供的輸出。The code example is part of a larger example, including output, provided for the IDictionary.Add method.

using System;
using System.Collections;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new dictionary of strings, with string keys,
        // and access it using the IDictionary interface.
        //
        IDictionary openWith = new Dictionary<string, string>();

        // Add some elements to the dictionary. There are no 
        // duplicate keys, but some of the values are duplicates.
        // IDictionary.Add throws an exception if incorrect types
        // are supplied for key or value.
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("dib", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");
Imports System.Collections
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new dictionary of strings, with string keys,
        ' and access it using the IDictionary interface.
        '
        Dim openWith As IDictionary = _
            New Dictionary(Of String, String)
        
        ' Add some elements to the dictionary. There are no 
        ' duplicate keys, but some of the values are duplicates.
        ' IDictionary.Add throws an exception if incorrect types
        ' are supplied for key or value.
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("dib", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")
// 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 returns null if the key is of the wrong data 
// type.
Console.WriteLine("The indexer returns null" 
    + " if the key is of the wrong type:");
Console.WriteLine("For key = 2, value = {0}.", 
    openWith[2]);

// The indexer throws an exception when setting a value
// if the key is of the wrong data type.
try
{
    openWith[2] = "This does not get added.";
}
catch (ArgumentException)
{
    Console.WriteLine("A key of the wrong type was specified" 
        + " when assigning to the indexer.");
}
' The Item property is the default property, so you 
' can omit its name when accessing elements. 
Console.WriteLine("For key = ""rtf"", value = {0}.", _
    openWith("rtf"))

' The default Item property 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 default Item property
' for that key adds a new key/value pair.
openWith("doc") = "winword.exe"

' The default Item property returns Nothing if the key
' is of the wrong data type.
Console.WriteLine("The default Item property returns Nothing" _
    & " if the key is of the wrong type:")
Console.WriteLine("For key = 2, value = {0}.", _
    openWith(2))

' The default Item property throws an exception when setting
' a value if the key is of the wrong data type.
Try
    openWith(2) = "This does not get added."
Catch 
    Console.WriteLine("A key of the wrong type was specified" _
        & " when setting the default Item property.")
End Try
// Unlike the default Item property on the Dictionary class
// itself, IDictionary.Item does not throw an exception
// if the requested key is not in the dictionary.
Console.WriteLine("For key = \"tif\", value = {0}.", 
    openWith["tif"]);
' Unlike the default Item property on the Dictionary class
' itself, IDictionary.Item does not throw an exception
' if the requested key is not in the dictionary.
Console.WriteLine("For key = ""tif"", value = {0}.", _
    openWith("tif"))
    }
}

    End Sub

End Class

備註

這個屬性可讓您使用下列C#語法來存取集合中的特定值: myCollection[key]myCollection(key)在 Visual Basic 中)。This property provides the ability to access a specific value in the collection by using the following C# syntax: myCollection[key] (myCollection(key) in Visual Basic).

您也可以使用Item[Object]屬性來加入新的專案,方法是設定不存在於字典中的索引鍵值, myCollection["myNonexistentKey"] = myValue例如。You can also use the Item[Object] property to add new elements by setting the value of a key that does not exist in the dictionary; for example, myCollection["myNonexistentKey"] = myValue. 不過,如果指定的索引鍵已存在於字典中,則Item[Object]設定屬性會覆寫舊值。However, if the specified key already exists in the dictionary, setting the Item[Object] property overwrites the old value. 相反地, Add方法不會修改現有的元素。In contrast, the Add method does not modify existing elements.

語言會使用 this 關鍵字來定義索引子,而不是執行IDictionary.Item[Object]屬性。 C#The C# language uses the this keyword to define the indexers instead of implementing the IDictionary.Item[Object] property. Visual Basic 會將 IDictionary.Item[Object] 實作為預設屬性,這樣會提供相同的索引功能。Visual Basic implements IDictionary.Item[Object] as a default property, which provides the same indexing functionality.

取得或設定這個屬性的值會接近 O (1)運算。Getting or setting the value of this property approaches an O(1) operation.

適用於

另請參閱