Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net中的列表_Vb.net_List_Add - Fatal编程技术网

vb.net中的列表

vb.net中的列表,vb.net,list,add,Vb.net,List,Add,我正在尝试创建列表,然后将这些列表插入到另一个列表中。 由于某种原因,每次我尝试向后一个列表添加新的列表项时,后一个列表都会被覆盖。 对于下面的代码,首先我想将项目添加到Temp列表中,在满足某些条件后,将Temp列表作为项目添加到Comp列表中。之后,循环重复,应创建新的和不同的Temp列表,并将其作为下一项添加到Comp列表中。因此,Comp列表中的每个项目都应该是不同的。 但最后我得到了一个Comp列表,其中充满了Temp列表,这些列表与上次添加的Temp列表完全相同。 我做错了什么 Fu


我正在尝试创建列表,然后将这些列表插入到另一个列表中。 由于某种原因,每次我尝试向后一个列表添加新的列表项时,后一个列表都会被覆盖。

对于下面的代码,首先我想将项目添加到
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
函数UniqueValueList2(ByVal InputObject作为列表(对象))作为列表(对象列表))
将vc设置为整数=InputObject.Count
尺寸i为整数=1
Dim Temp作为新列表(对象)
Dim Comp作为新列表(对象列表))
Dim CurrentObj As字符串
Dim PrevObj As字符串
临时添加(输入对象(0))
趁我不在的时候做
CurrentObj=InputObject(i).字段名
PrevObj=InputObject(i-1).字段名
如果CurrentObj=PrevObj,则
临时添加(输入对象(i))
其他的
组件添加(临时)
温度清除()
临时添加(输入对象(i))
如果结束
i=i+1
环
组件添加(临时)
UniqueValueList2=Comp
端函数

Temp保存着相同的引用。因此,对它进行更改将改变它。并且您添加和修改相同的列表

 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))

Temp持有相同的引用。因此,对它进行更改将改变它。并且您添加和修改相同的列表

 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))
这将有助于:

Comp.Add(Temp.ToList())
Temp.Clear()
Temp.Add(InputObject(i))

为什么要使用(对象的)列表?在我看来,它完全否定了泛型类型的好处。您也可以使用ArrayList。因为我想要一个类对象列表。为什么要使用list(of Object)?在我看来,它完全否定了泛型类型的好处。您也可以使用ArrayList,因为我想要一个类对象列表。