我有一个C#程序,我需要查找基于键的数据。 我将我的Python代码移植到C#中,发现难以实现嵌套Python字典的等效功能。经过多次尝试使用C#字典后,我决定使用Hashtable,因为它是松散类型的。如何访问C#中的嵌套散列表值
我可以写入我的嵌套Hashtable结构,如果迭代,我可以读取它。但我想要做的是访问基于特定键的特定数据。
这里是我使用的代码,它的工作原理:
foreach (DictionaryEntry x in ParameterTypes)
{
Console.WriteLine(x.Key + " -- ");
foreach (DictionaryEntry y in x.Value as Hashtable)
{
Console.WriteLine(y.Key + ": " + y.Value);
}
Console.WriteLine("\n");
}
它给了我这个输出(样本):
EVENT_PARAM_SCTP_SHUTDOWN_RESULT -
名称:EVENT_PARAM_SCTP_SHUTDOWN_RESULT
usevalid:是
说明:SCTP关机结果
numberofbytes:1
type:ENU中号
EVENT_PARAM_ENBS1APID -
名:EVENT_PARAM_ENBS1APID
numberofbytes:3
usevalid:是
描述:eNB的S1 AP ID
分辨率:1
类型:UINT
然而,以下代码不起作用:
Console.WriteLine(ParameterTypes["EVENT_PARAM_ENBS1APID"]["description"]);
当我试图获取基于键和嵌套键的数据时,正确的方法是什么?
您应该切换到'DIivingary' –
SLaks
我花了整整一天的时间试图使用字典,并放弃了,去散列表,而不是宽松的打字。我的密钥可能会有所不同,值的类型可能会有所不同,并且在某些情况下,我有第三级嵌套,为了清晰起见,此处未显示。 – hacker101
这听起来像个糟糕的主意。你应该重新考虑你的设计是更安全的。 – SLaks