从Hashtable中读取SortedList

本文关键字:SortedList 读取 Hashtable | 更新日期: 2023-09-27 18:04:48

当我在Hashtable中有这个结构时,我如何从SortedList中读取值?

下面是示例

public SortedList sl = new SortedList();
sl[test] = 1;
Hashtable ht= new Hashtable();
ht.Add("root", sl);

我要读sl[test]

从Hashtable中读取SortedList

你只需反向操作:

SortedList sortedList = (SortedList)ht["root"];
object value = sortedList[test];

现在,您需要将哈希表的结果强制转换回SortedList,然后才能在其上使用索引器等方法,这需要这种丑陋:

var result = (ht["root"] as SortedList)[test];

但是,如果哈希表的所有元素都是SortedList,则可以使用通用容器(如Dictionary)来代替,以避免强制转换:

var dic = new Dictionary<string, SortedList> { { "root", sl } };
result = dic["root"][test];

出于同样的原因,您也可以考虑将SortedList替换为其通用对应物,例如SortedList<string, int>(取决于'测试'的类型)。