2011-12-08 8 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の場合は管理、それ以外の場合はRegular。あなたが経由してこのマッピングを行うことができます

答えて

1

:しかし

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

、私はこれが何度も呼び出された場合は特に、それを毎回作成防ぐために、あなたのクラスの辞書を格納お勧めします。

+0

テーブルコードには約5つのフィールドがあり、そのうちの1つはcTypeです。 cTypeはintで、代わりにDictionaryから値を表示したかったのです。上記のコードは私にそれを許可しますか? – MikeB55

+0

@ MikeB55上記のコードは、辞書(今)から関連する文字列を含むリストを返します。他の情報が必要だった場合は、選択項目を変更してそれを含めてください。 –

+0

上記のコードを使用するとエラーが発生します。エラー: 'System.Collections.Generic.Dictionary'に最適なオーバーロードされたメソッドがあります。この[int]には無効な引数がいくつかあります – MikeB55