转换数据类型 (Visual Basic)

转换方法可更改输入对象的类型。

LINQ 查询中的转换运算可用于各种应用程序。 下面是一些示例:

方法

下表列出了执行数据类型转换的标准查询运算符方法。

本表中名称以“As”开头的转换方法可更改源集合的静态类型,但不对其进行枚举。 名称以“To”开头的方法可枚举源集合,并将项放入相应的集合类型。

方法名 描述 Visual Basic 查询表达式语法 详细信息
AsEnumerable 返回类型化为 IEnumerable<T> 的输入。 不适用。 Enumerable.AsEnumerable
AsQueryable 将(泛型)IEnumerable 转换为(泛型)IQueryable 不适用。 Queryable.AsQueryable
Cast 将集合中的元素转换为指定类型。 From … As … Enumerable.Cast

Queryable.Cast
OfType 根据其转换为指定类型的能力筛选值。 不适用。 Enumerable.OfType

Queryable.OfType
ToArray 将集合转换为数组。 此方法强制执行查询。 不适用。 Enumerable.ToArray
ToDictionary 根据键选择器函数将元素放入 Dictionary<TKey,TValue>。 此方法强制执行查询。 不适用。 Enumerable.ToDictionary
ToList 将集合转换为 List<T>。 此方法强制执行查询。 不适用。 Enumerable.ToList
ToLookup 根据键选择器函数将元素放入 Lookup<TKey,TElement>(一对多字典)。 此方法强制执行查询。 不适用。 Enumerable.ToLookup

查询表达式语法示例

下面的代码示例使用 From As 子句将类型转换为子类型,然后才访问仅在此子类型上可用的成员。

Class Plant
    Public Property Name As String
End Class

Class CarnivorousPlant
    Inherits Plant
    Public Property TrapType As String
End Class

Sub Cast()

    Dim plants() As Plant = {
        New CarnivorousPlant With {.Name = "Venus Fly Trap", .TrapType = "Snap Trap"},
        New CarnivorousPlant With {.Name = "Pitcher Plant", .TrapType = "Pitfall Trap"},
        New CarnivorousPlant With {.Name = "Sundew", .TrapType = "Flypaper Trap"},
        New CarnivorousPlant With {.Name = "Waterwheel Plant", .TrapType = "Snap Trap"}}

    Dim query = From plant As CarnivorousPlant In plants
                Where plant.TrapType = "Snap Trap"
                Select plant

    Dim sb As New System.Text.StringBuilder()
    For Each plant In query
        sb.AppendLine(plant.Name)
    Next

    ' Display the results.
    MsgBox(sb.ToString())

    ' This code produces the following output:

    ' Venus Fly Trap
    ' Waterwheel Plant

End Sub

另请参阅