我正在使用,Dictionary<string, int>其中int是键的计数。
现在,我需要访问字典中最后插入的键,但是我不知道它的名称。显而易见的尝试:
int LastCount = mydict[mydict.keys[mydict.keys.Count]];
不起作用,因为Dictionary.Keys未实现[] -indexer。
我只是想知道是否有类似的课程?我考虑过使用堆栈,但是只存储一个字符串。我现在可以创建自己的结构,然后使用Stack ,但是我想知道是否还有另一种选择,本质上是在Keys上实现[] -indexer的Dictionary?
字典是哈希表,因此您不知道插入顺序!
如果您想知道最后插入的键,建议您将Dictionary扩展为包含LastKeyInserted值。
例如:
public MyDictionary<K, T> : IDictionary<K, T>
{
private IDictionary<K, T> _InnerDictionary;
public K LastInsertedKey { get; set; }
public MyDictionary()
{
_InnerDictionary = new Dictionary<K, T>();
}
#region Implementation of IDictionary
public void Add(KeyValuePair<K, T> item)
{
_InnerDictionary.Add(item);
LastInsertedKey = item.Key;
}
public void Add(K key, T value)
{
_InnerDictionary.Add(key, value);
LastInsertedKey = key;
}
.... rest of IDictionary methods
#endregion
}
但是,当您使用它.Remove()来解决此问题时会遇到问题,您将必须保留插入钥匙的有序列表。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)