如何在vb.net中将项目添加到空字符串数组

时间:2019-03-02 23:12:46

标签: arrays vb.net

在下面的代码中,我从com接口对象获取一个主体列表作为一个对象。我想将它们添加到我的字符串数组中,然后计划进行比较。但是我不知道如何将它们添加到列表中。

Option Strict On
Option Explicit On
Imports simpackcomslvLib

Public Class TestClass

    Public Shared Sub Method1()
        Dim listBodyA As ScrNamedObjectList = Globals.SpckModel.getBodyList(False)
        Dim listBodyB As IScrNamedObjectList = Globals.Server.Spck.openModel("C:\Users\USER\Desktop\TestModels\main_model\MN_SIMPACK_demo1.spck").getBodyList(False)

        Dim A() As String
        Dim B() As String


        For i As Integer = 0 To listBodyA.count - 1
            A = A.Concat({listBodyA.item(i).name.ToString}).ToArray
        Next

        WriteMessage("A elements not in B: " + String.Join(", ", A.Except(B)))
        WriteMessage("B elements not in A: " + String.Join(", ", B.Except(A)))
        WriteMessage("Elements in both A & B: " + String.Join(", ", A.Intersect(B))

    End Sub

这是我试图获取对象的每个项目以添加字符串数组的代码,但是它不起作用。

  For i As Integer = 0 To listBodyA.count - 1
        A = A.Concat({listBodyA.item(i).name.ToString}).ToArray
    Next

1 个答案:

答案 0 :(得分:2)

您可以使用此代码从两个列表中提取属性名称

Dim A() As String = listBodyA.Select(Function (v) v.Name).ToArray()
Dim B() As String = listBodyB.Select(Function (v) v.Name).ToArray()

这将返回一个包含两个列表中所有Name值的数组,并且您无需事先知道要存储在两个数组中的项目数,因为它的最终目标数组是由ToArray实例化方法自动创建的