C# 如何从对象中的字典访问值?

C# 如何从对象中的字典访问值?,c#,javascript,object,dictionary,C#,Javascript,Object,Dictionary,好吧,我不确定我问的问题是否正确,但问题来了。我正在使用解析Javascript对象数组。我的代码如下所示: object packlist; using (var context = new JavascriptContext()) { context.Run(@"function packlist() { this.packs = new Array(); } var packlist = new packlist();

好吧,我不确定我问的问题是否正确,但问题来了。我正在使用解析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 of <string, Dictionary<string,object>[]>
浏览字典中的所有项目

foreach KeyPairValue<string,object> kp in packlist
{
    string key =  kp.Key;
    object value = kp.Value;
}
打包列表中的foreach KeyPairValue kp

{
字符串键=kp.key;
对象值=kp.值;
}
下面是dictionary类的MSDN链接


总体结构如下:

PackList => Dictionary of <string, Dictionary<string,object>[]>
浏览字典中的所有项目

foreach KeyPairValue<string,object> kp in packlist
{
    string key =  kp.Key;
    object value = kp.Value;
}
打包列表中的foreach KeyPairValue kp

{
字符串键=kp.key;
对象值=kp.值;
}
下面是dictionary类的MSDN链接

我认为是:

var a=packlist.packs[0][“item1”]

我认为是:


var a=packlist.packs[0][“item1”]

packlist变量是一个带有单个键的字典,其值是一个对象数组,该数组中的每个条目也是一个字典。所以获取值的过程是这样的

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"
Dictionary dicPacklist=(Dictionary)packlist;
对象[]packs=(对象[])dicPacklist[“packs”];
Dictionary dicPackOne=(Dictionary)包[0];
对象item1Value=dicPackOne[“item1”]//“什么”

您的packlist变量是一个带有单个键的字典,其值是一个对象数组,该数组中的每个条目也是一个字典。所以获取值的过程是这样的

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"
Dictionary dicPacklist=(Dictionary)packlist;
对象[]packs=(对象[])dicPacklist[“packs”];
Dictionary dicPackOne=(Dictionary)包[0];
对象item1Value=dicPackOne[“item1”]//“什么”

packlist是一个字典,其中每个值都是一个字典数组。此代码无效。packlist是一个字典,其中每个值都是一个字典数组。此代码无效。我无法使用
packlist
上的扩展方法
TryGetValue
ContainsKey
。我必须做什么才能得到它们?您必须使用“Dictionary packlist=(Dictionary)context.GetParameter(“packlist”);”解析它。您可能还必须解析其他值。我更新了代码。我无法使用
packlist
上的扩展方法
TryGetValue
ContainsKey
。我必须做什么才能得到它们?您必须使用“Dictionary packlist=(Dictionary)context.GetParameter(“packlist”);”解析它。您可能还必须解析其他值。我更新了我的代码。谢谢!这对理解它的工作原理有很大帮助。我希望我能投你一票。谢谢你!这对理解它的工作原理有很大帮助。我希望我能投你一票。