,c#,model-view-controller,datatables"/>

首页 > 解决方案 > 读取字典中的值

问题描述

我正在使用编辑器数据表并将数据从编辑器返回到控制器,并尝试从所谓的Dictionary<string,object>. 任何人都可以建议这是如何完成的。我读到 Dictionary 需要进行 Json 反序列化,但不太确定它是如何完成的。我包括一张我试图阅读的价值观的图片。谢谢。在此处输入图像描述

我在控制器中读取了通过 e.Values 返回的数据:

editor.PostCreate += (sender, e) => t = Task.Run(() => Add(intContTpe, lngContIdx, e.Values));
internal static void Add(int intContTpe, long lngContIdx, object objPCEAValues)
{
    Dictionary<string, object> dicVoDaCDRFormats = new Dictionary<string, object>();
    if (!dicPCEAValues.ContainsKey("CustomerVoiceCLICDRFormats.0"))
    {
        dicVoDaCDRFormats = ((Dictionary<string, object>)dicPCEAValues["CustomerVoiceCLICDRFormats"]);

        PrintToOutput("", ((Dictionary<string, object>)dicPCEAValues["CustomerVoiceCLICDRFormats"])["0"]);
    }
}

标签: c#model-view-controllerdatatables

解决方案


中的每个值dicVoDaCDRFormats都是它自己的字典。您还需要打开这些字典。

检查这是否为您提供了预期的结果。

foreach (KeyValuePair<string, object> items in dicVoDaCDRFormats) 
{
    if (items.Value is Dictionary<string, object> innerDict)
        foreach (var item in innerDict)
            PrintToOutput("", items.Value); 
}

这种类型的工作object是不安全的。is您可以使用andas关键字为其他部分添加类型检查以确保安全。但这取决于您正在处理的情况。


推荐阅读