在C#.NET中,ImageList.ImageCollection.Add(String,Image)
如何處理重複鍵?它會用相同的密鑰覆蓋條目,還是丟棄/不操作?這個函數的MSDN文檔是裸露的,並沒有提到這方面的行爲。ImageList.ImageCollection如何處理重複?
1
A
回答
1
我查看了ImageList.ImageCollection
的來源,我看不到任何重複密鑰檢查代碼。
在內部,ImageCollection
使用ImageInfo
的ArrayList
一個類存儲鍵(ImageInfo
包含一個字符串Key
字段)。它的操作實際上是效率低下的,因爲它不是散列表,而是通過迭代ArrayList中的每個存儲的ImageInfo
並返回第一個匹配的索引(即O(n)搜索)執行字符串查找,se ImageList.ImageCollection.IndexOfKey
。因此使用相同的密鑰添加第二個圖像將導致該圖像無法通過密鑰訪問,但仍可通過索引訪問該圖像。
1
查看Reflector中的代碼,它在內部使用ArrayList存儲密鑰,所以當您通過密鑰訪問圖像時,它將返回使用該密鑰添加的第一個項目。
+0
提及反射器+1,我將來會使用這個工具! –
相關問題
- 1. java包 - 如何處理重複名稱
- 2. 在SQL Server中如何處理重複
- 3. C# - 如何處理重複的multicastdelegate?
- 4. 如何處理scrapy中的重複項?
- 5. iOS如何處理URL方案重複?
- 6. Hbase如何處理重複記錄?
- 7. XMPP如何處理重複的消息?
- 8. 如何避免重複異常處理?
- 9. geom_tile()如何處理重複的數據?
- 10. 如何處理與HtmlUnit重複過多
- 11. 如何處理SQL中的重複行?
- 12. 如何處理重複的參數?
- 13. 模板處理,串重複{{重複5}}
- 14. 類處理,重複代碼
- 15. mysql查詢處理重複
- 16. 處理bst中的重複
- 17. schema.org重複內容處理
- 18. 處理重複的字段
- 19. 在後臺重複處理?
- 20. 重複異常處理
- 21. 重複的錯誤處理
- 22. 重複`DataFrame`處理工作?
- 23. Grails重複異常處理
- 24. PHP處理重複元素
- 25. 處理重複的Python
- 26. PHP PDO TRY。處理重複
- 27. 處理重複鍵與ConfigParser
- 28. pentaho的複製塊如何處理重複數據?
- 29. 如何處理硒中重複使用的元素(複製)
- 30. 如何重構重複的事件處理代碼
你爲什麼不試試?它可能會比等待答案更快...... –
也很有趣:RemoveByKey()中的「關鍵比較不區分大小寫」http://msdn.microsoft.com/en-us/library/system。 windows.forms.imagelist.imagecollection.removebykey(v = vs.110).aspx –
@ThomasLevesque我沒有提到獲得快速答案非常重要。如果你不知道獅子襲擊了人類,你會用棍子捅一下發現嗎?你的評論很愚蠢,完全沒有幫助。 –