如何比较两个字典值列表并将新密钥放入字典?

时间:2015-09-29 12:10:53

标签: c# asp.net asp.net-mvc

这是我的代码

public class model 
{
    public model();

    public List<Dictionary<string, string>> Data { get; set; }
}

List<Dictionary<string,string>>  data1;
List<Dictionary<string,string>>  data2;

var data1=await get<model>();
var data2=await get<model>();

data1[0]=[0][{id,101}]
         [1][{name,one}]

data1[1]=[0][{id,102}]
         [1][{name,two}]

data1[2]=[0][{id,103}]
         [1][{name,three}]


data2[0]=[0][{user.id,102}]

最后我想输出

data1[0]=[0][{id,101}]
         [1][{name,one}]
         [2][{active,false}]

data1[1]=[0][{id,102}]
         [1][{name,two}]
         [2][{active,true}]

data1[2]=[0][{id,103}]
         [1][{name,three}]
         [2][{active,false}]

在上面的代码中我有两个词典列表,第一个词典包含2个键,如id和name,第二个词典包含一个键ID。我想在id匹配时将两个字典中的id键与值(true / false)放入第一个字典中。

1 个答案:

答案 0 :(得分:1)

试试这个:

data1.ForEach(dict => dict.Add("active", data2.Any(x=> x.ContainsKey("user.id") && x["user.id"] == dict["id"]).ToString()));