2008-12-29 18 views
23

Dictionary[string]索引器在字典中不存在關鍵字時會返回什麼?我是C#的新手,我似乎無法找到與Javadoc相同的參考。C#:Dictionary的[string]索引器返回什麼?

我會得到null,還是會得到異常?

+11

當你嘗試它會發生什麼? – AnthonyWJones 2008-12-29 14:10:28

+3

這應該是一件好事,我想試試。 – jjnguy 2008-12-29 14:11:52

+0

感謝您的拼寫幫助Blair – jjnguy 2008-12-29 14:12:22

回答

25

如果您的意思是Dictionary<string,SomeType>的索引器,那麼您應該會看到一個例外(KeyNotFoundException)。如果你不希望它錯誤:

SomeType value; 
if(dict.TryGetValue(key, out value)) { 
    // key existed; value is set 
} else { 
    // key not found; value is default(SomeType) 
} 
14

一如既往,documentation是找出答案的方法。

下例外:

 
KeyNotFoundException 
The property is retrieved and key does not exist in the collection 

(我假設你的意思Dictionary<TKey,TValue>,順便說一句。)

注意,這是從non-generic Hashtable behaviour不同。

要嘗試在不知道它是否存在時獲取密鑰的值,請使用TryGetValue

3

可選擇使用TryGetValue,可以先檢查是否使用dict.ContainsKey(key)從而省去了一個價值發現如果你確實需要事先申報存在的關鍵它。

4

我想你可以嘗試

dict.ContainsKey(someKey) 

檢查,如果字典中包含的關鍵與否。

謝謝

相關問題