[英]How do I access values from a Dictionary in an object?
好吧,我不確定是否要問正確的問題,但是可以。 我正在使用Javascript .NET解析Javascript對象數組。 我的代碼如下所示:
object packlist;
using (var context = new JavascriptContext())
{
context.Run(@"function packlist() { this.packs = new Array(); }
var packlist = new packlist();
packlist.packs[0] = { item1:""something"", item2:""something2"", item3:""something3"" };
packlist.packs[1] = { item1:""something"", item2:""something2"", item3:""something3"" };
packlist.packs[2] = { item1:""something"", item2:""something2"", item3:""something3"" };");
packlist = context.GetParameter("packlist");
}
調試時,“本地”窗口顯示對象看起來像這樣 我的問題是如何從
packlist.packs[0]
訪問item1
?
您的packlist變量是帶有單個鍵的Dictionary,其值是一個對象數組,並且該數組中的每個條目也是一個Dictionary。 因此,獲得價值將像這樣。
Dictionary<string,object> dicPacklist =(Dictionary<string,object>) packlist;
object[] packs = (object[])dicPacklist["packs"];
Dictionary<string,object> dicPackOne = (Dictionary<string,object>)packs[0];
object item1Value = dicPackOne["item1"]; //"something"
總體結構如下:
PackList => Dictionary of <string, Dictionary<string,object>[]>
意思是它是一個字典,其中每個值都是字典的字典。
應該
object[] arr = packlist["packs"] as object[];
Dictionary<string, object> dictPack = arr[0] as Dictionary<string, object>;
object item1 = dictPack["item1"];
要么
object packs;
if (packlist.TryGetValue("packs",out packs)) {
object[] arr = packs as object[];
Dictionary<string, object> dictPack = arr[0] as Dictionary<string, object>;
object item1 = dictPack["item1"];
}
它們之間的區別是,在第一個中,假定鍵存在於字典中,否則會引發異常。 在第二個中,它將嘗試獲取值並告訴您密鑰是否有效。
要檢查關鍵字是否在字典中,可以使用以下命令:
bool exists = packlist.ContainsKey("item1");
要遍歷字典中的所有項目
foreach KeyPairValue<string,object> kp in packlist
{
string key = kp.Key;
object value = kp.Value;
}
這是字典類的MSDN鏈接
我覺得是這樣的:
var a = packlist.packs [0] [“ item1”];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.