列表中的值重复。我该如何避免呢?

时间:2019-01-07 14:57:39

标签: vb.net list winforms

Public Class clsA   
    Public icounter As Integer
    Public dtime As DateTime 
End Class

Dim list_A As New List(Of clsA)

Dim dyus As DateTime = DateTime.Now
oB = New clsA
oB.dtime = dyus
oB.counter = counter2 (comes from COM Port)

Dim b As Integer = oB.counter

Dim t1 As TimeSpan = New TimeSpan(0, 1, 0)

list_A.Add(oB)


If DateTime.Now - (list_A(0).dtime) > t1 Then
    If list_A.Sum(Function(x) x.counter) > 10 Then
        MessageBox.Show("TEST")
    End If
End If

你好

list_A.Add(oB)有2个值,dtime(DateTime)和icounter(Integer)。

list_A在计时器中。因此它总是增加,但是我想避免在此列表中重复计数器。

我该怎么做?

输出为:

time 1/7/2019 06:10:16 PM
counter 0

time 1/7/2019 06:10:18 PM
counter 0

time 1/7/2019 06:10:20 PM
counter 1

time 1/7/2019 06:10:20 PM
counter 1

我想要输出:

time 1/7/2019 06:10:16 PM
counter 0

time 1/7/2019 06:10:20 PM
counter 1

不应添加(或删除)带有计数器的重复项。

1 个答案:

答案 0 :(得分:0)

您可以像这样遍历所有对象:

'New list
Dim list_B As New List(Of clsA)
For each item in list_A
    If Not list_B.Contains(item) Then
        list_B.Add(item)
    End If
Next

如果最后执行此操作,则应该有一个名为list_B的新列表,其中包含列出了共铸但无重复的所有内容