类似哈希表的数据结构,带有额外的信息来标识首选/当前项
本文关键字:标识 信息 数据结构 哈希表 | 更新日期: 2023-09-27 18:07:26
c#中是否存在字典或哈希表或类似的结构,带有属性(如XML)或额外的数据块来指定哈希表中的一个特定项是首选/当前项?我想这样做:
Hashtable myHashtable = new Hashtable();
myHashtable.Add(key1, item1);
myHashtable.Add(key2, item2, true); // true = specify this item2 as the preferred/current
myHashtable.Add(key3, item3);
除了将这些首选/当前信息保存在项目中。
目前,我使用自己的结构如下,但仍然没有检查所有的极端情况:
public class HashtableWithCurrent : Hashtable
{
String _currentKey = String.Empty;
public void Add(object key, object value, bool current)
{
// TODO make sure key is a String
//
base.Add(key, value);
//
_currentKey = (String)key;
}
public override void Remove(object key)
{
base.Remove(key);
// key also
if (_currentKey == key)
ClearCurrentKey();
}
public String CurrentKey
{
get
{
return _currentKey;
}
}
public void ClearCurrentKey()
{
_currentKey = String.Empty; // via a function rather than a setter to avoid unwanted setting
}
}
你可以自己写,但我认为你不需要它。在使用Hashtable
:
class MyClass
{
private object _currentKey;
private Hashtable _myHashtable = new Hashtable();
public void Method()
{
// ...
_myHashtable.Add(key1, item1);
_myHashtable.Add(key2, item2);
_currentKey = key2;
_myHashtable.Add(key3, item3);
}
}