首页 > 解决方案 > 如何将项目添加到 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

标签: arraysvb.net

解决方案


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

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

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


推荐阅读