Adattípusok konvertálása (Visual Basic)
A konvertálási módszerek megváltoztatják a bemeneti objektumok típusát.
A LINQ-lekérdezések konverziós műveletei számos alkalmazásban hasznosak. Az alábbiakban néhány példát láthat:
A Enumerable.AsEnumerable metódussal elrejthető egy szabványos lekérdezési operátor egyéni implementációja.
A Enumerable.OfType metódussal nem paraméteres gyűjteményeket engedélyezhet a LINQ-lekérdezésekhez.
A Enumerable.ToArray, Enumerable.ToDictionary, Enumerable.ToListés Enumerable.ToLookup metódusokkal azonnali lekérdezésvégrehajtást kényszeríthet ahelyett, hogy elhalasztanák, amíg a lekérdezés számba nem kerül.
Metódusok
Az alábbi táblázat az adattípus-átalakításokat végző szabványos lekérdezési operátori metódusokat sorolja fel.
A táblázatban szereplő konverziós módszerek, amelyeknek a neve "As" néven kezdődik, megváltoztatják a forrásgyűjtemény statikus típusát, de nem számbavételt végeznek rajta. Azok a metódusok, amelyeknek a neve a "To" kezdetű, számba adja a forrásgyűjteményt, és az elemeket a megfelelő gyűjteménytípusba helyezi.
Metódus neve | Leírás | Visual Basic Query Expression Szintaxis | További információ |
---|---|---|---|
AsEnumerable | A beírt értéket adja eredményül IEnumerable<T>. | Nem alkalmazható. | Enumerable.AsEnumerable |
AsQueryable | (általános) IEnumerable konvertálása (általános) IQueryablelesz. | Nem alkalmazható. | Queryable.AsQueryable |
Cost | Egy gyűjtemény elemeit egy megadott típusra veti. | From … As … |
Enumerable.Cast Queryable.Cast |
OfType | Az értékeket attól függően szűri, hogy egy adott típusba szeretnének-e beszűkíteni őket. | Nem alkalmazható. | Enumerable.OfType Queryable.OfType |
ToArray | Gyűjteményt tömbzé alakít át. Ez a metódus kényszeríti a lekérdezés végrehajtását. | Nem alkalmazható. | Enumerable.ToArray |
ToDictionary | Elemeket helyez el egy Dictionary<TKey,TValue> kulcsválasztó függvény alapján. Ez a metódus kényszeríti a lekérdezés végrehajtását. | Nem alkalmazható. | Enumerable.ToDictionary |
ToList | Gyűjteményt List<T>konvertál . Ez a metódus kényszeríti a lekérdezés végrehajtását. | Nem alkalmazható. | Enumerable.ToList |
ToLookup | Elemeket helyez egy Lookup<TKey,TElement> (egy-a-többhöz) szótárba egy kulcsválasztó függvény alapján. Ez a metódus kényszeríti a lekérdezés végrehajtását. | Nem alkalmazható. | Enumerable.ToLookup |
Példa lekérdezési kifejezés szintaxisára
Az alábbi példakód a From As
záradék használatával a típust egy altípusba adhatja, mielőtt hozzáfér egy olyan taghoz, amely csak az altípuson érhető el.
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