我有一個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