有了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/