加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在字典中插入第一个元素?

发布时间:2020-12-15 17:36:09 所属栏目:百科 来源:网络整理
导读:我有一个字典结构,里面有多个键值对. myDict.Add(key1,value1);myDict.Add(key2,value2);myDict.Add(key3,value3); 我的字典用作一些控件的数据源.在控件的下拉菜单中,我看到的项目是这样的: key1key2key3 订单与我的字典相同. 我知道Dictionary不像arrayLi
我有一个字典结构,里面有多个键值对.
myDict.Add(key1,value1);
myDict.Add(key2,value2);
myDict.Add(key3,value3);

我的字典用作一些控件的数据源.在控件的下拉菜单中,我看到的项目是这样的:

key1
key2
key3

订单与我的字典相同.
我知道Dictionary不像arrayList – 你可以得到索引等.
我不能使用sortedDictionary.
现在我需要在我的程序的某个点添加一个键值对这个字典,我希望它与我这样做的效果相同:

myDict.Add(newKey,newValue);
myDict.Add(key1,value3);

如果我这样做,我知道newKey将显示在我的控制作为第一个元素.

我有一个想法来创建一个tempDict,将每个对的myDict放在tempDict中,然后清除myDict,然后添加如下所示的对:

myDict.Add(newKey,value3);

有比这更好的办法吗?

谢谢!

解决方法

Dictionary<K,V>没有订购.任何感知的订单维护是偶然的(以及特定实现的工件,包括但不限于桶选择顺序和计数).

这些是我所了解的方法(只是使用Base Class Libraries BCL):

> Lookup<K,V>

> .NET4,不可变,可以将键映射到多个值(在构建过程中观察重复项)

> OrderedDictionary

>旧的,非通用的,期望的字典性能界限(其他两种方法是“get(key)/ set(key)”的O(n))

>列表< KeyValuePair< K,V>>

> .NET2 / 3好的,可变的,更多的脚步,可以将键映射到多个值(在插入中观察重复)

快乐编码.

创建一个维护插入顺序的哈希数据结构实际上只是对标准哈希实现的轻微修改(Ruby哈希现在保持插入顺序);然而,这并没有在.NET中完成,更重要的是它是Dictionary / IDictionary合同的一部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读