使用嵌套的foreach遍历字典

本文关键字:遍历 字典 foreach 嵌套 | 更新日期: 2023-09-27 18:12:14

这是一个包含以下示例数据的嵌套字典对。

{"A-BC-1111/AB.CD":{"P1":"F","P2":"0.0"}

我正在尝试迭代它并创建一个像这样的集合类:

public class FromDic
{
    string Name = "A-BC-1111/AB.CD";
    Attr1 = "F";
    Attr2 = "0.0";
}

我正在尝试这样做嵌套foreach:

FromDic collectiondic=new FromDic();
foreach(var Key in MyDic)
{
    collectionDic.Name=Key;
    // key on the inner loop is for “Type” and “Val”
    foreach (var key in obj.Keys)
    {
        IJsonValue val;
        if (!obj.TryGetValue(key, out val))
            continue;
        switch (key)
        {
            case "P1":
                collectionDic.Attr1 = val.GetString();
                break;
            case "P2":
                collectionDic.Attr2 = val.GetNumber().ToString();
                break;
        }
    }
}

但是我的代码无法编译。我能做些什么使这个嵌套的foreach工作吗?

使用嵌套的foreach遍历字典

我指的是你之前的问题,假设你正在使用Json.net

var list = jObj.Children()
            .Cast<JProperty>()
            .Select(p => new FromDic()
            {
                Name = p.Name,
                Attr1 = (string)p.Value["P1"],
                Attr2 = (string)p.Value["P2"]
            })
            .ToList();

public class FromDic
{
    public string Name;
    public string Attr1;
    public string Attr2;
}