使用嵌套的foreach迭代字典

时间:2013-05-06 12:47:02

标签: c#

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

{"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工作?

1 个答案:

答案 0 :(得分:2)

我指的是您的previous question并假设您使用的是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;
}