如何将键/值对插入字典
本文关键字:插入 字典 | 更新日期: 2023-09-27 18:35:30
当我使用 Add
向Dictionary
添加一个条目时,KeyValuePair
被添加到它的末尾。我想在迭代KeyValuePair
时准备它,它是第一项。
有没有办法用Dictionary
来做到这一点,或者我应该建立一个List<KeyValuePair<TKey, TValue>>
,或者你有更好的建议吗?
编辑:我以为我可以在Dictionary
中处理枚举,似乎我不能。
我尝试了List<KeyValuePair<TKey, TValue>>
这不是很实用。
Dictionary
类内部没有秩序的概念 - Dictionary
没有位置索引。
字典上使用位置索引,请查看 System.Collections.Specialized
命名空间中的 OrderedDictionary
类。
我想你正在寻找OrderedDictionary。
使用 OrderedDictionary
.
表示可由键或索引访问的键/值对的集合。您可以在所需索引处插入键值 pait。
如果你想保持秩序,Dictionary
不是你想使用的集合(它没有秩序的概念)。
索引词典,有一个OrderedDictionary
集合会有所帮助。
还有一个SortedDictionary
集合,它将根据键值对添加的值进行排序。
正式地,如果你遍历一个键值对(foreach
它,从而调用GetEnumerator()
),你永远无法知道你的键值对将以什么顺序从Dictionary<,>
中出来。当然,如果您从字典中Remove
一些项目,然后Add
其他一些项目,当您foreach
集合时,新项目将位于已删除项目的空间中,而不是在迭代"列表"的末尾。
但是:如果你知道你从来没有从你的Dictionary<,>
Delete
,看起来枚举会按照添加的顺序生成项目。不能保证这将始终有效,但看起来它在当前实现中有效。
所以如果你敢依靠这个,你可以说
foreach (var keyValuePair in myDict.Reverse())
{
...
Reverse
方法是 LINQ 的一部分(需要 using System.Linq
)。