为什么两个值在字典中丢失了它们的值

时间:2012-03-12 13:46:20

标签: vb.net

我有一本字典,我填充如下:

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

我无法弄清楚原因,但是当我单步执行代码时,我看到成人和儿童拥有正确的值,但它会被清零。

以下是一个例子:

在初始循环中,我没有将成人和儿童分配给结构(访客)。

在第二个循环中,我检查房间是否有分配的访客,如果不是,我创建一个新结构(访客),然后将其添加到房间列表。所以在第一个循环中,我可能有2条记录,但是在第二个循环中,我必须添加第3条记录,但是当我这样做时,似乎第3条记录从第2条记录获得成人/儿童数量第二条记录为零。

1 个答案:

答案 0 :(得分:0)

您可以尝试将密钥设为字符 - 也许是付款人的姓名和日期,即Dim mykey As String = {Lastname & "_" & Firstname & "_" & RoomNumber},然后将客人和房间的所有数据堆叠在字符串列表中:

Dim dic As New Dictionary(Of String, List(Of String))