2013-07-29 5 views
18

다음 코드에서 '람다 식 평가가 디버거에서 유효하지 않습니다'. 내가 아래에서 잘못하고있는 중이 야 어디 제안하십시오 -linq을 사용하여 사전 값을 목록으로 변환하십시오.

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

감사합니다, 당신은 값을 얻을 수 Linq에를 사용할 필요가 없습니다

+0

'objDictionary'의 유형은 무엇입니까? –

답변

45

합니다.

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

는 포함하지 않는 :

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(TKey, TValue)는 값을 보유 속성, Dictionary(TKey, TValue).Values있다 "using System.Linq"파일에서.

관련 문제