列表vb.net列表
问题描述:
我想创建列表,然后插入到另一个列表中。 由于某种原因,后面的列表在每次尝试向其中添加新列表项时都会被覆盖。
对于以下代码,首先我要将项目添加到Temp
列表中,并且在满足某些条件后,将Temp
列表作为项目添加到Comp
列表中。之后,循环重复,新的和不同的Temp
列表应创建并添加到Comp
列表作为下一项。所以Comp
列表中的每个项目应该是不同的。
但最终我得到一个Comp
列表,填写Temp
列表,这些列表都与最后添加的Temp
列表完全相同。
我在做什么错?列表vb.net列表
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
答
温度持有相同的参考。这样就可以进行更改会改变it.And您添加和修改同一个列表
Comp.Add(Temp) 'the same Temp List
Temp.Clear() 'You will clear the same List
Temp.Add(InputObject(i))
所以,你应该怎么做:
Comp.Add(Temp) 'we add old List
Temp=New List(Of Object) 'Temp now holds reference to new List
Temp.Add(InputObject(i))
答
这将工作:
Comp.Add(Temp.ToList())
Temp.Clear()
Temp.Add(InputObject(i))
为什么要使用列表(对象)?在我看来,它完全否定了泛型类型的好处。你也可以使用一个ArrayList。 – 2014-10-31 13:33:56
因为我想要一个类对象的列表。 – 2014-11-02 08:04:43