2013-07-09 68 views
-1

我有一本字典更改列表元素字典

Dictionary<string,int> infoDic 

和列表

List<Info> infoList 

信息對象有2個屬性:信息文本和InfoInt

我要檢查是否infoList有任何信息對象,其中Info.InfoText等於infoDic.Key ,如果是的話,我想實例化Info.InfoInt到infoDic.Value

編輯

var test= from t in infoList 
     join x in infoDic 
     on t.InfoText equals x.Key 
     select new Info {InfoText =t.InfoText , InfoInt=x.Value } 

任何幫助嗎? 泰

+2

請到目前爲止顯示您的代碼,以便我們能夠更正它。如果你沒有代碼,請告訴我們爲什麼。 –

+0

添加代碼..刪除投票plz xD –

+1

現在的代碼有什麼問題? –

回答

1
// IEnumerable<Info> 
var items = infoList.Where(i => infoDic.ContainsKey(i.InfoText)) 
        .Select(e => new Info 
          { 
           InfoInt = infoDic[e.InfoText], 
           InfoText = e.InfoText 
          }); 
1

我要檢查是否有infoList任何信息對象,其中Info.InfoText 等於infoDic.Key

可能是這樣的:

var ifAny = infoList.Any(info=>infoDic.ContainsKey(info.InfoText); 
0
bool contains = infoList.Any(i => infoDic.ContainsKey(i.InfoText)); 

但因爲你的第二個要求:

Info info = infoList.FirstOrDefault(i => infoDic.ContainsKey(i.InfoText)); 
if(info != null) 
{ 
    infoDic[info.InfoText] = info.InfoInt; 
    //or the other way around(it's not that clear) 
    info.InfoInt = infoDic[info.InfoText]; 
} 
+0

downvote的任何理由? –