我们如何按照插入顺序检索Dictionary<A,B>
个元素?如果字典不支持这个,那么我应该使用哪个对象给出了字典的行为,但也允许我按插入顺序获取元素。
提前致谢:)
答案 0 :(得分:3)
无法保证您可以按顺序从Dictionary<TKey, TValue>
检索元素。如果这是您想要的行为,只需将其封装到一个类中:
class DictionaryWithKeysOrderedByInsertion<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>> {
private readonly List<TKey> keys = new List<TKey>();
private readonly Dictionary<TKey, TValue> dictionary = new Dictionary<TKey, TValue>();
public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() {
foreach(var key in keys) {
yield return new KeyValuePair(key, dictionary[key]));
}
}
// etc.
}
答案 1 :(得分:2)
字典是无序的,如果您希望它们按插入顺序返回,您可能需要考虑通用Queue
答案 2 :(得分:2)
不,字典没有这样的功能。
你可以