익명의 개체의 키에 의한 그룹 그룹이 예상되는 방식으로 행동하지 않는 이유는 무엇입니까?
-
06-07-2019 - |
문제
이 공평한 CSV 파일이 있습니다
A,B,value
a1,b1,10
a2,b1,12
a2,b1,15
a2,b2,14
a1,b1,12
내 응용 프로그램에서 DataTable로 변환하고 있습니다.
Dim enumerable = _dt.AsEnumerable
Dim groupedResults = enumerable.GroupBy( _
Function(x) _
New With { _
.A = x.Item("A").ToString, _
.B = x.Item("B").ToString _
} _
)
나는 GroupEdResults가 5 개 대신 4로 계산할 것으로 예상했다.
기본적으로 1 번과 5 번의 행을 하나의 그룹으로 그룹화하지 않습니다.
동일한 값을 가진 객체가 동일한 키를 생성 할 것으로 예상했습니다.
그 이유는 무엇입니까?
해결책
익명 유형 속성을 불변으로 만드십시오. 평등과 해싱이 작동하는 방법입니다. (C#에서 모든 익명 유형은 기본적으로 불변 할 수 없습니다.)
이 시도
Dim enumerable = _dt.AsEnumerable
Dim groupedResults = enumerable.GroupBy( _
Function(x) _
New With { _
Key .A = x.Item("A").ToString, _
Key .B = x.Item("B").ToString _
} _
)
편집 : Key
부분은 속성이 익명 유형의 핵심임을 의미합니다. 참조 VB 익명 유형 MSDN 페이지 자세한 사항은.
제휴하지 않습니다 StackOverflow