在vb.net中复制(T)类列表的最快方法?

在vb.net中复制(T)类列表的最快方法?,vb.net,linq,class,Vb.net,Linq,Class,VB.NET 2012 我创建了一个foo的部分列表,它在构建之后将保持静态,然后创建了第二个foo列表,它将始终包含部分列表中的所有内容。我的问题是。。。将一个列表复制到另一个列表的快捷方式是什么?有没有更快的方法,没有循环 参见Class1 Option Explicit On Option Strict On Public Class Form1 Private _initFoo As New Class1() Private _postFoo As New Class1(

VB.NET 2012 我创建了一个foo的部分列表,它在构建之后将保持静态,然后创建了第二个foo列表,它将始终包含部分列表中的所有内容。我的问题是。。。将一个列表复制到另一个列表的快捷方式是什么?有没有更快的方法,没有循环

参见
Class1

Option Explicit On
Option Strict On
Public Class Form1
    Private _initFoo As New Class1()
    Private _postFoo As New Class1()

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        _initFoo.Init()
        _postFoo.Combine(_initFoo, _postFoo) ' **
    End Sub
End Class


Option Explicit On
Option Strict On
Public Class Class1
    Private FooLst As New List(Of Foo)

    Public Class Foo
        Public Property Item1 As String
        Public Property Item2 As String
    End Class

    Public Sub Init()
        FooLst.Add(New Class1.Foo With {.Item1 = "1", .Item2 = "A"})
        FooLst.Add(New Class1.Foo With {.Item1 = "2", .Item2 = "B"})
    End Sub

    Public Sub Combine(readFrom As Class1, writeTo As Class1) ' **
        ' Is there a faster or way to copy one list to the other?
        ' possibly without looping though each item in the readFrom list?
        For Each f As Foo In readFrom.FooLst
            writeTo.FooLst.Add(New Foo With {.Item1 = f.Item1, .Item2 = f.Item2})
        Next
    End Sub
End Class

您可以使用AddRange将一个列表的内容添加到现有列表中:

list1.AddRange(list2)

这会将列表2的内容添加到列表1中,保留列表1中的原始项。

您可以使用AddRange将一个列表的内容添加到现有列表中:

list1.AddRange(list2)

这会将列表2的内容添加到列表1中,保留列表1中的原始项目。

您真的需要在运行时克隆这些项目吗?请注意,即使您使用的代码在源代码中没有循环,某些东西也会在某个地方循环。您正在克隆—生成新的Foo—而不是将现有的Foo复制到新列表中。这就是你想要的吗?我看不到一种循环的方法,你希望在每个列表中有单独的实例。如果没有,那么最快的方法可能是使用
List
构造函数。我创建了一个需要保存的“部分列表”。部分列表必须包含在“完整列表”中。根据用户与控件的交互方式,可以丢弃和重建“完整列表”。如果速度真的很重要,请使用数组和。但是除非你有很长的列表,否则不会有明显的区别。你真的需要在移动时克隆这些项目吗?请注意,即使您使用的代码在源代码中没有循环,某些东西也会在某个地方循环。您正在克隆—生成新的Foo—而不是将现有的Foo复制到新列表中。这就是你想要的吗?我看不到一种循环的方法,你希望在每个列表中有单独的实例。如果没有,那么最快的方法可能是使用
List
构造函数。我创建了一个需要保存的“部分列表”。部分列表必须包含在“完整列表”中。根据用户与控件的交互方式,可以丢弃和重建“完整列表”。如果速度真的很重要,请使用数组和。但是除非你有很长的列表,否则它不会有明显的区别。它都在一行上,更容易阅读,而且看起来像循环一样快,所以谢谢!这一切都在一行,更容易阅读,似乎像循环一样快,所以谢谢!