사전에 자신의 가치를 잃게 : 코드의 다른 부분에서가 나는 내가 이런 식으로 채울 사전이
Dim RoomInfo As New Dictionary(Of Integer, GuestInfo)
Dim guestCount As Integer = 1
For Each guest As Guest in Room
guest.Code = code
guest.Name = name
RoomInfo.Add(guestCount, guest)
guestCount = guestCount + 1
Next
을, 나는 각
에 대한 내 사전에 더 많은 손님을 추가For Each guest As Guest in Room
guest.Code = code
guest.Name = name
guest.Adults = adults
guest.Children = children
RoomInfo.Add(guestCount, guest)
guestCount = guestCount + 1
RoomInfo.Add(RoomInfo.Count + 1, guest)
Next
이유를 알 수 없지만 코드를 단계별로 살펴보면 성인과 어린이가 올바른 값을 갖고 있지만 0이 아닌 것을 볼 수 있습니다. 여기
는 예입니다 : 초기 루프에서, 나는 구조 (고객)에 성인과 어린이를 할당하지 않습니다.
두 번째 루프에서 방에 지정된 게스트가 있는지 확인하고 그렇지 않은 경우 새 구조 (게스트)를 만들고 룸 목록에 추가합니다. 따라서 첫 번째 루프에서는 2 개의 레코드가있을 수 있지만 두 번째 루프에서는 세 번째 레코드를 추가해야하지만, 이렇게하면 세 번째 레코드가 두 번째 레코드에서 성인/자식 카운트를 얻는 것처럼 보입니다. 두 번째 레코드는 0이됩니다.
는
사전의 키는 고유해야합니다. 카운트에 의존한다면 당신이 어떻게 그들을 독특하게 지키길 바라는 지 알 수 없습니다. 실용적인 접근 방법이 될 수있는 방 번호를 키로 사용하려는 경우 –
하지만 독창적인데 다른 손님을 추가 할 때 키를 사전 카운트보다 하나 높게 증가시킵니다. – Xaisoft
@TimSchmelter 당신이 옳긴해도, 그것은 여기서 문제가되지 않는 것 같습니다. guestCount가 고유 한 상태 인 한 – nik