2011-05-10 155 views
0

我的代碼應該從列表中刪除項目,但不刪除項目。從列表中刪除項目

我的代碼:

dim myRoom as Room = New Room() 
Dim myRoomList as List(of Room) = new List(of Room) 

... 
myRoomList.add(myRoom) 
msgbox(myRoomList.count) 

... 
myRoomList.remove(myRoom) 
msgbox(myRoomList.count) 
+1

所有帳戶都應該刪除該項目。我們需要更多信息。你怎麼知道它沒有被刪除?你已經剔除了哪些代碼? – anothershrubery 2011-05-10 09:39:44

+0

我使用計數方法來檢查...刪除項目後也返回相同的舊計數值 – KoolKabin 2011-05-10 09:47:02

+0

您所顯示的代碼無疑是完美的作品。這個問題必須出現在你用'''0123'縮進的部分中。 – 2011-05-10 09:53:20

回答

1

你肯定是沒有刪除之前添加的項目,使得計不會再次增加。嘗試使用此爲測試...

dim myRoom as Room = New Room() 
Dim myRoomList as List(of Room) = new List(of Room) 

... 
myRoomList.add(myRoom) 
msgbox(myRoomList.count) 

... 
msgbox(myRoomList.count) 
myRoomList.remove(myRoom) 
msgbox(myRoomList.count) 
1

唯一可能的原因不去除該項目是當你已經重寫了Room類錯誤的Equals方法。例如,下面的代碼將表現出這種行爲:

Class Room 
    Public Overrides Function Equals(ByVal obj As Object) As Boolean 
     Return False 
    End Function 
End Class 

如果不是的話,那麼錯誤是其他地方你對我們的代碼是實際可行的。