在下面的代码中,我从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
答案 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实例化方法自动创建的