【问题标题】:How to quickly transform a List(Of Object) into a List(Of "Object.field")?如何快速将 List(Of Object) 转换为 List(Of "Object.field")?
【发布时间】:2012-05-29 19:37:28
【问题描述】:

假设我有一个猫的列表。

Public Class Cat 
    Public Property id As Guid
    Public Property name As String
    Public Property race As catRace
End Class

如何使用 id 属性快速将此 List(Of Cat) 转换为 List(Of Guid)?

我可以:

Dim newList As List(Of Guid)
For each item in catList
    newList.Add(item.id)
Next

但我认为必须有一种方法可以更快地做到这一点(1 LOC)。我就是找不到方法。

【问题讨论】:

    标签: vb.net linq list


    【解决方案1】:

    一行代码可能会让输入更快,但执行起来不一定更快。

    Dim newList = From c In catList Select c.id
    

    【讨论】:

      【解决方案2】:

      一行代码,使用扩展方法而不是 LINQ。

      newList = catList.Select(Function(t) t.id).ToList
      

      如果你更喜欢 LINQ

      newList = (From c In catList Select c.id).ToList
      

      【讨论】:

        【解决方案3】:

        LINQ。 catList.Select(t=>t.id)。不过,不完全确定 => 的 VB 等价物对于 lambda 是什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-29
          • 1970-01-01
          • 2015-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-19
          • 1970-01-01
          相关资源
          最近更新 更多