繁体   English   中英

ImageList.ImageCollection如何处理重复项?

[英]How does ImageList.ImageCollection handle duplicates?

在C#.NET中, ImageList.ImageCollection.Add(String,Image)处理重复键? 它会覆盖具有相同键的条目还是引发/不操作? 关于此功能的MSDN文档是裸露的,并且没有提及这方面的行为。

查看Reflector中的代码,它在内部使用ArrayList来存储键,因此,当您按键访问图像时,它将返回添加有该键的第一项。

我查看了ImageList.ImageCollection的源代码,但看不到任何重复键检查代码。

在内部, ImageCollection使用一个ArrayListImageInfo类存储密钥( ImageInfo包含字符串Key字段)。 由于它不是哈希表,因此其操作实际上效率很低,而是通过遍历ArrayList中每个存储的ImageInfo并返回第一个匹配项的索引(即O(n)搜索)(例如ImageList.ImageCollection.IndexOfKey )来执行字符串查找。 。 因此,使用相同的密钥添加第二个图像将导致该图像无法通过密钥访问,但是仍然可以通过索引对其进行访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM