亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有什么更有效的方法:Dictionary TryGetValue或ContainsKey

有什么更有效的方法:Dictionary TryGetValue或ContainsKey

慕后森 2019-11-11 12:54:42
從MSDN在Dictionary.TryGetValue方法上的條目:此方法結合了ContainsKey方法和Item屬性的功能。如果找不到鍵,則value參數將為值類型TValue獲取適當的默認值;否則,值為0。例如,對于整數類型,0(零),對于布爾類型,false(假),對于引用類型,null。如果您的代碼經常嘗試訪問不在字典中的鍵,請使用TryGetValue方法。使用此方法比捕獲Item屬性引發的KeyNotFoundException更有效。此方法接近O(1)操作。從描述中,尚不清楚它是否比調用ContainsKey然后進行查找更有效或更方便。TryGetValue只是先調用ContainsKey然后再實現Item 的實現,還是實際上比通過一次查找更有效?換句話說,什么是更有效的(即哪個執行的查詢更少):Dictionary<int,int> dict;//...//int ival;if(dict.ContainsKey(ikey)){  ival = dict[ikey];}else{  ival = default(int);}要么Dictionary<int,int> dict;//...//int ival;dict.TryGetValue(ikey, out ival);注意:我不是在尋找基準!
查看完整描述

3 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

TryGetValue 會更快。


ContainsKey使用與相同的檢查TryGetValue,該檢查內部引用實際的輸入位置。該Item屬性實際上具有與幾乎相同的代碼功能TryGetValue,除了它將引發異常而不返回false。


使用,ContainsKey后跟Item基本上是重復的查找功能,在這種情況下,這是大部分計算。


查看完整回答
反對 回復 2019-11-11
  • 3 回答
  • 0 關注
  • 1387 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號