2012-05-17 85 views
0

我有一個linq數據庫功能工作正常,但不得不對我的控制以外的信息持有某些信息的類型。Linq與字典

正確的情況是我有一個asp.net 3.5網站,信息存儲在一個字典中。

的代碼,我是

Table.Insert(_rules.RuleList 
        .Where(rule => !ruleRecords 
          .Any(r => r.RuleID == rule.RuleID) 
      )); 

正如你可以看到它不包括在其中r.RuleID == rule.RuleID

都好,但是「R」不再是一個對象,是現在是一本字典。

任何想法如何通過在linq查詢中提供鍵(「RuleID」)來獲得字典的值?

不勝感激任何建議,但我不能更新到4.0,我不能沒有存儲在對象中的數據,除非它可以是一個臨時的轉換

+0

你在哪裏存儲了你的ID?您可能希望根據公共字段將ID列表添加到字典中。你能否在詞典中添加更多關於你有什麼數據的信息 –

+0

你的意思是,ruleRecords現在是一個詞典?如果是這樣的話,該字典中的密鑰對應於規則的RuleId?如果是這樣的話,r => r.Key == rule.RuleID – hjgraca

+1

只是要挑剔...... lol - 一個字典(實例)*是*和對象。 – EtherDragon

回答

0

只要你的字典的關鍵是RuleId,我想你可以重新寫爲:

Table.Insert(_rules.RuleList.Where(rule => !ruleRecords.ContainsKey(rule.RuleId)) 
+0

我接受這個答案,因爲這是正確的,但是我必須做一些稍微不同的事情我的編輯) – atmd

1

什麼你問(如何讓一個字典的價值,提供了一個鍵):dict[key],所以你的情況r[rule.RuleID]

如同足尖在另一個答案中,你可能想要的是:詞典。 ContainsKey