python - 从预先存在的列表 VB.Net 生成对象属性列表

标签 python vb.net linq

有了Python背景,我已经相当习惯使用像这样的行了

print(" ".join({x.name for x in my_list}))

哪里

{x.name for x in my_list}

是一个列表/数组,包含 my_list 中每个对象的 name 属性。

我希望在 VB.Net 中做类似的事情,我知道使用更长的代码部分是可能的,例如:

Dim str1 = ""
For each item in myList
   str1 &= item.name & " "
Next

但我更喜欢一个更简单的解决方案,因为我会经常这样做,而且我听说使用 LINQ 可以实现类似的表示法。

如有任何帮助,我们将不胜感激。

最佳答案

我认为您正在谈论IEnumerable(Of T).Select功能。您可以使用它来将一种类型的集合映射到另一种类型的集合。

Dim combinedNames As String = String.Join(" ", myList.Select(Function(item) item.Name))

所以相当于 vb.net 中 python 的 {x.name for x in my_list}

Dim names = myList.Select(Function(item) item.Name)

Dim builder = new StringBuilder()
For Each name in names
    builder.Append(name)
    builder.Append(" ")
Next

Dim allNames = builder.ToString()

请注意,Select 函数返回 IEnumerable(Of T) 类型。

关于python - 从预先存在的列表 VB.Net 生成对象属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45748570/

相关文章:

python - 想想 Python : Chapter 12 Exercise 6

python - 如何与子进程共享父进程的 numpy 随机状态?

.NET 标准 2.0 数据.OleDb

javascript - Node.js HTTP 和 TCP 客户端连接

c# - INT 在复选框中转换为可更新的 bool 值

python - 运行我的 python 模块的程序总是在 while 循环后的第一行返回语法错误

python - 使用 pdb 运行时多处理代码失败?

vb.net - OpenStreetMap 提名和土地利用

c# - 在 Linq 中执行先父后子排序

c# - 如何在不丢失数据的情况下重命名数据表列名?