VB.Net:从结构中删除一个项目

时间:2016-09-16 09:27:18

标签: vb.net data-structures

我有一个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

是否有一种简单的方法可以从结构中删除对象?我宁愿避免创建一个空副本,然后复制活动副本,然后再破坏旧副本,如果可以的话。

1 个答案:

答案 0 :(得分:0)

你不需要。

您的结构基本上只是一个容器,其中包含有关您对象的一些数据。从字典中删除对象后,将删除此容器。因此无需手动删除数据。

对于强制性汽车类比: 当您在其中一台巨大的印刷机中将汽车摧毁时,您不需要清空汽车的烟灰缸。