2015-09-29 39 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。現在工作正常,我還有一個問題 –

相關問題