Gegevenstypen converteren (Visual Basic)
Conversiemethoden wijzigen het type invoerobjecten.
Conversiebewerkingen in LINQ-query's zijn handig in verschillende toepassingen. Hier volgen enkele voorbeelden:
De Enumerable.AsEnumerable methode kan worden gebruikt om de aangepaste implementatie van een type van een standaardqueryoperator te verbergen.
De Enumerable.OfType methode kan worden gebruikt om niet-geparameteriseerde verzamelingen in te schakelen voor LINQ-query's.
De Enumerable.ToArraymethoden , Enumerable.ToDictionaryen Enumerable.ToListEnumerable.ToLookup methoden kunnen worden gebruikt om onmiddellijke uitvoering van query's af te dwingen in plaats van deze uit te stellen totdat de query is geïnventariseerd.
Methoden
De volgende tabel bevat de standaardqueryoperatormethoden waarmee conversies van gegevenstypen worden uitgevoerd.
De conversiemethoden in deze tabel waarvan de namen beginnen met As wijzigen het statische type van de bronverzameling, maar niet opsommen. De methoden waarvan de namen beginnen met 'Aan' inventariseren de bronverzameling en plaatsen de items in het bijbehorende verzamelingstype.
Methodenaam | Beschrijving | Syntaxis van Visual Basic-queryexpressie | Meer informatie |
---|---|---|---|
AsEnumerable | Retourneert de invoer die is getypt als IEnumerable<T>. | Niet van toepassing. | Enumerable.AsEnumerable |
AsQueryable | Converteert een (algemeen) IEnumerable naar een (algemeen) IQueryable. | Niet van toepassing. | Queryable.AsQueryable |
Cast | Hiermee worden de elementen van een verzameling geconverteerd naar een opgegeven type. | From … As … |
Enumerable.Cast Queryable.Cast |
OfType | Filtert waarden, afhankelijk van de mogelijkheid om te worden omgezet naar een opgegeven type. | Niet van toepassing. | Enumerable.OfType Queryable.OfType |
ToArray | Converteert een verzameling naar een matrix. Deze methode dwingt de uitvoering van query's af. | Niet van toepassing. | Enumerable.ToArray |
ToDictionary | Hiermee plaatst u elementen in een Dictionary<TKey,TValue> op basis van een sleutelkiezerfunctie. Deze methode dwingt de uitvoering van query's af. | Niet van toepassing. | Enumerable.ToDictionary |
ToList | Converteert een verzameling naar een List<T>. Deze methode dwingt de uitvoering van query's af. | Niet van toepassing. | Enumerable.ToList |
ToLookup | Hiermee plaatst u elementen in een Lookup<TKey,TElement> (een-op-veel-woordenlijst) op basis van een sleutelkiezerfunctie. Deze methode dwingt de uitvoering van query's af. | Niet van toepassing. | Enumerable.ToLookup |
Voorbeeld van syntaxis van queryexpressie
In het volgende codevoorbeeld wordt de From As
component gebruikt om een type te casten naar een subtype voordat u toegang krijgt tot een lid dat alleen beschikbaar is voor het subtype.
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