Konwertowanie typów danych (Visual Basic)
Metody konwersji zmieniają typ obiektów wejściowych.
Operacje konwersji w zapytaniach LINQ są przydatne w różnych aplikacjach. Poniżej przedstawiono kilka przykładów:
Metoda Enumerable.AsEnumerable może służyć do ukrywania niestandardowej implementacji typu standardowego operatora zapytania.
Metoda Enumerable.OfType może służyć do włączania nieparametryzowanych kolekcji na potrzeby wykonywania zapytań LINQ.
Metody Enumerable.ToArray, , Enumerable.ToListEnumerable.ToDictionaryi Enumerable.ToLookup mogą służyć do wymuszania natychmiastowego wykonywania zapytania zamiast odroczenia go do momentu wyliczenia zapytania.
Metody
W poniższej tabeli wymieniono standardowe metody operatorów zapytań, które wykonują konwersje typów danych.
Metody konwersji w tej tabeli, których nazwy zaczynają się od "Jako", zmieniają statyczny typ kolekcji źródłowej, ale nie wyliczają. Metody, których nazwy zaczynają się od "Do", wyliczają kolekcję źródłową i umieszczają elementy w odpowiednim typie kolekcji.
Nazwa metody | opis | Składnia wyrażeń zapytań języka Visual Basic | Więcej informacji |
---|---|---|---|
Asenumerable | Zwraca dane wejściowe wpisane jako IEnumerable<T>. | Nie dotyczy. | Enumerable.AsEnumerable |
Asqueryable | Konwertuje (ogólny) IEnumerable na (ogólny) IQueryable. | Nie dotyczy. | Queryable.AsQueryable |
Rzutowanie | Rzutuje elementy kolekcji na określony typ. | From … As … |
Enumerable.Cast Queryable.Cast |
Oftype | Filtruje wartości w zależności od ich możliwości rzutowania do określonego typu. | Nie dotyczy. | Enumerable.OfType Queryable.OfType |
Toarray | Konwertuje kolekcję na tablicę. Ta metoda wymusza wykonywanie zapytań. | Nie dotyczy. | Enumerable.ToArray |
Todictionary | Umieszcza elementy w oparciu Dictionary<TKey,TValue> o funkcję selektora kluczy. Ta metoda wymusza wykonywanie zapytań. | Nie dotyczy. | Enumerable.ToDictionary |
Tolist | Konwertuje kolekcję na .List<T> Ta metoda wymusza wykonywanie zapytań. | Nie dotyczy. | Enumerable.ToList |
Tolookup | Umieszcza elementy w słowniku Lookup<TKey,TElement> (jeden do wielu) na podstawie funkcji selektora kluczy. Ta metoda wymusza wykonywanie zapytań. | Nie dotyczy. | Enumerable.ToLookup |
Przykład składni wyrażenia zapytania
Poniższy przykład kodu używa klauzuli , From As
aby rzutować typ do podtypu przed uzyskaniem dostępu do elementu członkowskiego, który jest dostępny tylko w podtypie.
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