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
解决方案
您可以使用此代码从两个列表中提取属性名称
Dim A() As String = listBodyA.Select(Function (v) v.Name).ToArray()
Dim B() As String = listBodyB.Select(Function (v) v.Name).ToArray()
这将返回一个包含两个列表中所有 Name 值的数组,您不需要事先知道要存储在两个数组中的项目数,因为最终目标数组是由 ToArray 物化方法自动创建的
推荐阅读
- c# - 如何包含两个相同类型的关系属性?
- powershell - 为什么当我将我的 PS 脚本存储在变量中时会得到不同的结果?
- laravel - Laravel Catch 所有路线
- javascript - 无法使用 Javascript(VueJS)读取 Firestore 文档
- php - 为什么在laravel中无法识别路线?
- python - 即使元素存在,Selenium find_element 也会抛出异常
- f# - 为什么绑定到同一个变量的函数的引用相等返回false?
- ios - iOS:Mac Catalyst,在其他 Mac 上测试 iOS 应用
- swift - 接受数值类型并将它们转换为双精度的 Swift 函数
- ruby-on-rails - 如何在 Ruby on Rails 中为动态模型添加动态属性