データ型の変換 (Visual Basic)
変換メソッドは、入力オブジェクトの型を変更します。
LINQ クエリの変換操作は、さまざまなアプリケーションで役に立ちます。 次はその例の一部です。
Enumerable.AsEnumerable メソッドを使用すると、標準クエリ演算子の型のカスタム実装を非表示することができます。
Enumerable.OfType メソッドを使用すると、LINQ クエリのパラメーター化されていないコレクションを有効にすることができます。
Enumerable.ToArray、Enumerable.ToDictionary、Enumerable.ToList、および Enumerable.ToLookup メソッドを使用すると、クエリが列挙されるまで延期させるのではなく、即時のクエリ実行を強制することができます。
メソッド
次の表には、データ型の変換を実行する標準クエリ演算子メソッドの一覧が示されています。
名前が "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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET