当前位置: 代码迷 >> C# >> 如何实现 Dictionary<string, Image> 还可以通过索引取值
  详细解决方案

如何实现 Dictionary<string, Image> 还可以通过索引取值

热度:155   发布时间:2016-05-05 03:01:38.0
怎么实现 Dictionary<string, Image> 还可以通过索引取值?
有一个 Dictionary<string, Image> dicImage 对象
可以通过 dicImage["背景"] 得到图片信息。
但是还想通过 dicImage[0] 得到图片信息。既可以通过string 又可以通过索引 int 取值。
怎么去实现啊
------解决思路----------------------
dic1.ElementAt(0)
------解决思路----------------------
用一个新类,包含Dictionary<string, Image>和List<string>

Add的时候把key放入Dict和List
去的时候如果是索引器方式的,先从list取到Key,然后根据key取value

这是我第一个想到的法子,未必是最好的,等楼下更好建议
------解决思路----------------------
字典是不排序的,所以不可能根据索引获取

如果你想要根据索引,还不如就不用字典,而是改用
List<KeyValuePair<string,Image>>
------解决思路----------------------
ElementAt是对IEnumerable的扩展,使通过遍历实现的。
而Dicionary的遍历循序是没有定义的。

而且,ElementAt(30)要数30个后,才能拿下一个。而array的索引,是按照地址直接访问的,并不需要空数前面30个。
  相关解决方案