【发布时间】:2012-08-31 01:26:25
【问题描述】:
我们如何按插入顺序检索Dictionary<A,B> 元素?如果字典不支持这一点,那么我应该使用哪个对象,它给出了字典的行为,但也允许我按照插入的顺序获取元素。
提前致谢:)
【问题讨论】:
标签: c#
我们如何按插入顺序检索Dictionary<A,B> 元素?如果字典不支持这一点,那么我应该使用哪个对象,它给出了字典的行为,但也允许我按照插入的顺序获取元素。
提前致谢:)
【问题讨论】:
标签: c#
不保证您可以按顺序从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.
}
【讨论】:
字典是无序的,如果您希望它们按照插入的顺序返回,您可能需要考虑通用 Queue
【讨论】:
不,字典没有这样的功能。
你可以
【讨论】: