【问题标题】:How to add items to empty string array in vb.net如何将项目添加到 vb.net 中的空字符串数组
【发布时间】:2019-03-02 23:12:46
【问题描述】:

在下面的代码中,我从 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

【问题讨论】:

  • 使用Dim A As New List(Of String)(),您可以使用A.Add(listBodyA.item(i).name.ToString) 添加元素。如果name 是一个字符串,那么您可以删除ToString

标签: arrays vb.net


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多