2013-07-29 4 views
18

「ラムダ式の評価はデバッガでは有効ではありません。私は、下から間違ってやっているところ は示唆してください -linqを使用して辞書の値をリストに変換する

List<MyFieldClass> lstFiedls; 
lstFiedls = objDictionary.Select(item => item.Value).ToList(); 

おかげで、

+0

'objDictionary'の型は何ですか? –

答えて

45

をあなたが値を取得するためのLINQを使用する必要はありません。 Dictionary(TKey, TValue)は、値を保持する性質を持っていDictionary(TKey, TValue).Values

var fields = objDictionary.Values.ToList(); 
+14

'Dictionary .ValueCollection'クラスの' ToList() 'メソッドが' System.Linq'の拡張メソッドであることに注意してください。しかし、 'ValueCollection'は' ICollection'と 'IEnumerable'を実装しているので、値を変換せずにリストに加えることができます。 – LiquidPony

+0

'AsEnumerable()' Linq拡張メソッドを使用して、 'List'の代わりに' IEnumerable'を得ることもできます。 'objDictionary.Values.AsEnumerable()' – RubberDuck

3

あなたは、単に)ToListメソッド(とリストに辞書の値を変換しようとするとコンパイルエラーになります:

 Dictionary<int, int> dict = new Dictionary<int, int>(); 
     var result = dict.Values.ToList(); 

あなたが含まれていない限り"System.Linqを使用して"あなたのファイルで。

関連する問題