次の方法で共有


データ型の変換 (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

関連項目