在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我没有提到获得快速答案非常重要。如果你不知道狮子袭击了人类,你会用棍子捅一下发现吗?你的评论很愚蠢,完全没有帮助。 –