変換メソッドは、入力オブジェクトの型を変更します。
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 |
キャスト | コレクションの要素を指定した型にキャストします。 | 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