我有一个VB.Net结构,其中包含一堆关于对象的数据。对象在一天中被添加到这个结构中并且往往具有有限的生命,因此,随着时间的推移,我的结构最终包含已经过期的对象。
在他们的一生中,他们的一些属性发生了变化,所以我有一个字典,这样我就可以在需要更新它时轻松找到合适的对象。
然而,当一个对象到期时,我想将它从结构中删除。我可以从字典中删除它,但无法弄清楚如何从结构中删除它。
这是我的结构:
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Main()
End Sub
Public Structure ObjectList
Public hash As String
Public xPosition As String
Public yPosition As String
Public zPosition As String
Public speed As String
Public Sub New(ByVal _hash As String, ByVal _xposition As String, ByVal _yposition As String, ByVal _zposition As String, ByVal _speed As String)
hash = _hash
xPosition = _xposition
yPosition = _yposition
zPosition = _zposition
speed = _speed
End Sub
End Structure
Sub Main()
Dim Tracking As ObjectList
Dim dict_Tracking As New Dictionary(Of String, ObjectList)
' Define a new object
Tracking.hash = "4D010AEF"
Tracking.xPosition = "3.5"
Tracking.yPosition = "7.2"
Tracking.zPosition = "8.1"
Tracking.speed = "16.2"
' Add hash to dictionary so that we can find it easily without searching entire dictionary
dict_Tracking.Add(Tracking.hash, Tracking)
End Sub
End Class
是否有一种简单的方法可以从结构中删除对象?我宁愿避免创建一个空副本,然后复制活动副本,然后再破坏旧副本,如果可以的话。
答案 0 :(得分:0)
你不需要。
您的结构基本上只是一个容器,其中包含有关您对象的一些数据。从字典中删除对象后,将删除此容器。因此无需手动删除数据。
对于强制性汽车类比: 当您在其中一台巨大的印刷机中将汽车摧毁时,您不需要清空汽车的烟灰缸。