【发布时间】:2014-10-31 10:20:55
【问题描述】:
我正在尝试创建列表,然后将其插入另一个列表。
由于某种原因,每次我尝试向其中添加新列表项时,后一个列表都会被覆盖。
对于下面的代码,首先我想将项目添加到Temp 列表中,在满足某些条件后,将Temp 列表作为项目添加到Comp 列表中。之后,循环重复,应该创建新的和不同的Temp 列表,并将其添加到Comp 列表中作为下一项。所以Comp 列表中的每一项都应该是不同的。
但最后我得到了一个Comp 列表,其中充满了Temp 列表,这些列表与添加的最后一个Temp 列表完全相同。
我做错了什么?
Function UniqueValueList2(ByVal InputObject As List(Of Object)) As List(Of List(Of Object))
Dim vc As Integer = InputObject.Count
Dim i As Integer = 1
Dim Temp As New List(Of Object)
Dim Comp As New List(Of List(Of Object))
Dim CurrentObj As String
Dim PrevObj As String
Temp.Add(InputObject(0))
Do While i < vc
CurrentObj = InputObject(i).fieldName
PrevObj = InputObject(i-1).fieldName
If CurrentObj = PrevObj Then
Temp.Add(InputObject(i))
Else
Comp.Add(Temp)
Temp.Clear()
Temp.Add(InputObject(i))
End If
i = i + 1
Loop
Comp.Add(Temp)
UniqueValueList2 = Comp
End Function
【问题讨论】:
-
为什么要使用 List(Of Object)?在我看来,它完全否定了泛型类型的好处。你也可以只使用一个 ArrayList。
-
因为我想要一个类对象列表。