GroupBy를 사용하여 여러 하위 그리드에서 사용할 그룹의 계층 집합을 만듭니다.여러 그룹이 계층으로 구성된 GroupBy
6 개의 열, a, b, c, d, e, f가 포함 된 쿼리가 있다고 가정합니다.
이제 그룹별로 a, b, c, 다음으로 그룹화해야합니다. c의 그룹에서 전체 행을 반환합니다.
var q = rows.GroupBy(x => x.a)
좋습니다. 저에게 제 그룹이 있습니다. 다음으로, 우리는 a와 b로 묶어 봅니다.
var q1 = q.Select(g =>new {
Key = g.Key,
SubGroup = g.GroupBy(x => x.b)
}
좋습니다. 괜찮습니다. b의 하위 그룹과 함께 a의 내 그룹을 얻습니다.
이제 세 번째 레벨에서 난처한 상황입니다. 다양한 구문을 시도했지만 대부분 컴파일되지 않습니다. 올바른 결과를주지는 않습니다.
var q2 = q1.Select(g1 => new {
Key = g1.Key,
SubGroup = g1.GroupBy(x => x.c)
}
이것은 컴파일되지 않습니다. g1에 GroupBy가 없다고 알려줍니다.
var q2 = q.Select(g1 => new {
Key = g1.Key,
SubGroup = g1.GroupBy(x => x.c)
}
이것은 b 하위 그룹이 아니며 a와 c 만 제공합니다.
내가 여기서 잘못하고있는 것에 대한 아이디어가 있습니까?
편집 : g1.Key 나는이 내부적으로 무엇을하고 있는지에 같은 가난한 파악이
var q2 = q.Select(g => new {
Key = g.Key,
SubGroup = g.Select(g1 => new {
Key = g1.Key
SubGroup = g1.GroupBy(a => a.c)
})
에 대한 정의가없는 말을
다음은 또한 작동하지 않습니다.
그램이 단체의 단지 목록입니다 당신은 당신에게 개체를 제공 g.select 말을하는거야, 하지만 그 안에 열쇠가 없다. –
네, 그걸 얻고 있습니다. 나는 여기에 점들을 연결하고 해결책이 무엇인지 알아 내지 못하고있다. –