2012-02-17 8 views
0

을 변환 할 수 없습니다. 그러나 이제 결과를 그룹화 할 필요가 있습니다. 두 개의 "GroupBy"줄을 포함하면 다음과 같은 오류 메시지가 나타납니다.LINQ GROUPBY는 암시 나는 다음과 같은 기본 LINQ 쿼리를 입력

'System.Linq.IQueryable'형식을 'System.Linq.IQueryable'형식으로 암시 적으로 변환 할 수 없습니다. 명시 적 변환이 존재합니다 (캐스트가 누락 되었습니까?)

제 질문은이 경우 캐스트를 수행하는 방법을 잘 모르겠습니다. 누군가 나를 도울 수 있습니까?

감사합니다.

+0

왜 결과를 그룹화해야합니까? 주문 하시거나, 각 그룹당 1 명의 고객이 필요하십니까? – Jimmy

답변

1

문제는 귀하가 그룹을 호출 한 후에 (이 경우) 고객의 열거 수를 반환하지 않는다는 것입니다. 당신은 그룹의 열거를 되 찾는다.

고객 그룹에는 BirthMonth 속성이 없습니다.

여기 정확히 무엇을하려하십니까?

이게 원하는가요?

var results1 = results.GroupBy(x => x.Gender); 
var results2 = results1.Select(group => group.GroupBy(x => x.BirthMonth)); 

이렇게하면 결국 그룹 그룹이 생깁니다. (유형이 다르므로 동일한 변수를 다시 사용할 수 없다는 점에서 dasblinkenlight의 대답도 포함 시켰습니다).

1

먼저 "이 경우 캐스트를 수행하는 방법"에 대한 원래 질문에 대답하십시오. 익명 형식을 사용하기 때문에 대답을 할 수 없습니다.

표시되는 오류는 내재적으로 입력 된 results 변수가 그룹화 된 결과와 호환되지 않기 때문입니다. 이 시도 :

var results1 = results.GroupBy(x => new {x.Gender, x.BirthMonth}); 

GroupBy에 의해 생성 된 IQueryable가없는 기록 자체에, 만일 IQueryable에 그룹의 레코드 때문에 당신도 앞두고 그룹의 if (onlyShowKnownGenders) 블록을 사용해야합니다.

관련 문제