C# 我们能检索字典吗<;A、 B>;元素的插入顺序?
我们如何按照插入的顺序检索C# 我们能检索字典吗<;A、 B>;元素的插入顺序?,c#,C#,我们如何按照插入的顺序检索字典元素?如果dictionary不支持这一点,那么我应该使用哪个对象,它给出dictionary的行为,但也允许我按照元素插入的顺序获取元素 谢谢: 字典是无序的,如果你想让它们按它们插入的顺序返回,你可能想考虑一般的 不,字典没有这样的功能。 你可以 使用2种结构并同时插入到两者中-List/LinkedList存储序列和dictionary以提供快速查找 您可以向字典中存储的条目添加有关插入时间的信息 不能保证您可以按顺序从字典中检索元素。如果这是您想要的行为,只
字典
元素?如果dictionary不支持这一点,那么我应该使用哪个对象,它给出dictionary的行为,但也允许我按照元素插入的顺序获取元素
谢谢: 字典是无序的,如果你想让它们按它们插入的顺序返回,你可能想考虑一般的 不,字典没有这样的功能。 你可以
不能保证您可以按顺序从
字典
中检索元素。如果这是您想要的行为,只需将其封装到一个类中:
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.
}
类字典WithKeysOrderedByInsertion:IEnumerable{
私有只读列表键=新列表();
专用只读词典Dictionary=新词典();
公共IEnumerator GetEnumerator(){
foreach(键中的var键){
返回新的KeyValuePair(key,dictionary[key]);
}
}
//等等。
}