从Hashtable读取SortedList

时间:2014-05-24 09:00:34

标签: c# hashtable sortedlist

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

以下是示例

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

我想阅读sl[test]

2 个答案:

答案 0 :(得分:2)

你只是反过来说:

SortedList sortedList = (SortedList)ht["root"];

object value = sortedList[test];

答案 1 :(得分:2)

就目前而言,您需要将哈希表的结果强制转换回SortedList,然后才能使用索引器等方法,这需要这种丑陋:

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

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

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

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