2014-09-12 6 views
0

IEnumerable<dynamic>Rows 개체가 있으며 속성 (열)과 행이 5 개 있습니다. 속성/열 중 하나는 100 행 중 단지 2 별개의 그룹, Group, 그래서 처음 난에 대한 별개의 실행C# Select Linq 문 사용?

IEnumerable<dynamic> Groups = Rows.Select(x => x.Group).Distinct(); 

이 작동, 오류없이. 이 그룹은 다음과 같이 Rows에서 그룹을 = 곳

그런 다음 나는 그들을 통해 내 Rows 객체 및 루프 다시 가고 싶지 :

foreach (string Group in Groups) 
{ 
    IEnumerable<dynamic> GroupData = 
     from rowdata in Rows 
     where rowdata.Group = @Group 
     select rowdata; 

하지만 마지막 줄에이 오류를 얻을 :

'WebMatrix.Data.DynamicRecord' does not contain a definition for 'Group' 

왜 이것이 작동하지 않는지 알고 계십니까?

분명히 다른 방법으로 할 수 있지만 대신 C# select 문을 사용하고 싶습니다. 어떻게 생각하니? Group 값에

foreach (var row in GroupData){ 
     string ThisGroup = row.Group 
    } 
    ... 
+0

무엇이'@ 그룹'인지 말하고 싶습니다 어디'rowdate.Group = "Group" ' – MethodMan

+3

1)'='는 할당이 아닌 비교 2)'Rows.Select (x => x. 그룹)''행 선택 x.Group'에서''될 것입니다. –

+0

GroupData를 사용하는 코드를 표시 할 수 있습니까? –

답변

3

대신 두 번 선택, 그룹 :


편집 사용을 보여 이제

IEnumerable<IGrouping<string, dynamic>> groups = Rows.GroupBy(x => (string)x.Group); 

을 할 수 있습니다 결과를 통해 단지 루프 :

foreach (IGrouping<string, dynamic> group in groups) { 
    ... 
} 

IGrouping<> 개체는 그룹화 한 값인 Key 속성을 가지고 있으며 그룹의 값 모음이기도합니다.

+0

수정을 참조하십시오. –