1
정확한 용어는 확실하지 않지만 LINQ를 사용하여 시도한 것은 하위 키가있는 사전의 키를 "전환"하는 것입니다 . LINQ를 사용하여 2 차원 사전의 하위 키로 부모 키 전환
이
내가 입력으로 가지고 모음입니다 :Key:HeaderID Value:
Key:ItemID Value:Object
Key:ItemID Value:Object
Key:ItemID Value:Object
Key:HeaderID Value:
Key:ItemID Value:Object
Key:ItemID Value:Object
Key:ItemID Value:Object
Key:HeaderID Value:
Key:ItemID Value:Object
Key:ItemID Value:Object
Key:ItemID Value:Object
을 그리고 이것은 내가 출력으로 원하는 모음입니다 : 이미 VB.net에서 코드를 생성 한
Key:ItemID Value:
Key:HeaderID Value:Object
Key:HeaderID Value:Object
Key:HeaderID Value:Object
Key:ItemID
Key:HeaderID Value:Object
Key:HeaderID Value:Object
Key:HeaderID Value:Object
Key:ItemID
Key:HeaderID Value:Object
Key:HeaderID Value:Object
Key:HeaderID Value:Object
:
Dim objInput As Dictionary(Of String, Dictionary(Of String, Object)) = fakefunction()
' ItemID -> HeaderID ColumnValue
Dim objOutput As New Dictionary(Of String, Dictionary(Of String, Object))
For Each strHeaderID As String In objInput.Keys
Dim objColumnValuesPerItem As Dictionary(Of String, Object) = objInput(strHeaderID)
For Each strItemID As String In objColumnValuesPerItem.Keys
Dim objColumnValue As Object = objColumnValuesPerItem(strItemID)
If Not objOutput.ContainsKey(strItemID) Then
objOutput.Add(strItemID, New Dictionary(Of String, Object))
End If
objOutput(strItemID).Add(strHeaderID, objColumnValue)
Next
Next
나는이 질문에 순수한 교육을 요구하는 이유 때문에 이것을 LINQ를 사용하여 올바른 목록, 난 단지 복잡하고 긴 LINQ 문을 만들지 않고 어디서나지고 아니었다.