2011-12-08 80 views
1

我有一個類返回數據庫表中的所有項目(代碼如下)。我也有一個包含鍵值對的字典。在我從我的函數返回數據之前,我可以查看字典裏面的內容,並返回與linq中的鍵相關的值嗎?C#詞典LINQ

public IEnumerable<Code> Return_All_Codes() 
     { 
      return _db.Codes.ToList(); 
      //can the above list look inside my dictionary below and return Administrative when it find the number 1 for my code type? 


     } 


public Dictionary<int, string> GetCodeTypes() 
     { 

      var dict = new Dictionary<int, string>(); 
      dict.Add(1, "Administrative"); 
      dict.Add(2, "Regular"); 

      return dict; 
     } 

上面的列表可以查看我的字典裏面,並返回管理當它找到我的代碼類型的數字1?我的LINQ中有一種IF語句?如果1則管理,否則定期。

回答

1

你可以通過做這個映射:

var dict = GetCodeTypes(); 
return _db.Codes.AsEnumerable().Select(code => dict[code.cType]).ToList(); 

不過,我建議你存儲類,以防止每次都創建它的字典,尤其是如果這就是所謂的很多倍。

+0

表代碼有大約5個字段,其中之一是cType。 cType是一個int,我想顯示Dictionary中的值。上面的代碼是否允許我這樣做? – MikeB55

+0

@ MikeB55上面的代碼將返回一個List ,其中包含字典(現在)中的相關字符串。如果您需要其他信息,則只需更改所選內容即可包含它... –

+0

我在使用上述代碼時遇到錯誤。錯誤:'System.Collections.Generic.Dictionary .this [int]'的最佳重載方法匹配有一些無效參數 – MikeB55