2015-09-29 36 views
-6

这是我的代码如何比较两个字典值列表并将新密钥放入字典中?

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和名称,第二百科包含一个密钥ID。我想比较两个字典中的id键,当id匹配把新的键值(真/假)放入第一个字典。

+3

而不是使用这些字典他们应该是代表什么,这些对象是一类新的对象。 – Servy

+0

不,我有像公共类模型{公共类<字符串,字符串>> {得到;集'};} –

+1

然后,你应该改变你的模型。 – Servy

回答

1

试试这个:

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

谢谢@Nikolay。现在工作正常,我还有一个问题 –

相关问题