Konwertowanie typów danych
Metody konwersji zmienić typ wejściowy obiektów.
Operacje konwersji w kwerendach LINQ są przydatne w różnych aplikacji.Poniżej przedstawiono kilka przykładów:
Enumerable.AsEnumerable``1 Metoda może służyć do ukrycia niestandardowej implementacji typu operatora standardowej kwerendy.
Enumerable.OfType``1 Metoda może służyć do umożliwienia-sparametryzowana kolekcje do wykonywania kwerend LINQ.
Enumerable.ToArray``1, Enumerable.ToDictionary``2, Enumerable.ToList``1, I Enumerable.ToLookup``2 metod można wymusić wykonanie kwerendy natychmiastowe zamiast odroczenia go, aż kwerenda jest wyliczany.
Metody
Poniższa lista zawiera metody operator standardowej kwerendy wykonujące konwersje typów danych.
Metody konwersji w tej tabeli, których nazwa zaczyna się od "Jako" Zmiana statyczne typu kolekcji źródła, ale nie wyliczyć.Metody, których nazwy zaczynają się "Do wyliczyć kolekcji źródłowej i wprowadzane elementy do kolekcji odpowiedniego" typu.
Nazwa metody |
Opis |
Kwerendy języka C# składni wyrażenia |
Visual BasicSkładni wyrażenia kwerendy |
Więcej informacji |
---|---|---|---|---|
AsEnumerable |
Zwraca dane wejściowe, wpisana jako IEnumerable. |
Nie dotyczy. |
Nie dotyczy. |
|
AsQueryable |
Konwertuje (rodzajowa) IEnumerable do (rodzajowa) IQueryable. |
Nie dotyczy. |
Nie dotyczy. |
|
Obsada |
Posługując się miarką elementów kolekcji do określonego typu. |
Można użyć zmiennej zakres jawnie maszynowy.Na przykład: from string str in words |
From … As … |
|
OfType |
Filtry wartości, w zależności od ich zdolności do oddawany do określonego typu. |
Nie dotyczy. |
Nie dotyczy. |
|
ToArray |
Konwertuje kolekcji do tablicy.Ta metoda wymusza wykonanie kwerendy. |
Nie dotyczy. |
Nie dotyczy. |
|
ToDictionary |
Umieszcza elementy w Dictionary na podstawie funkcji selektor klucza.Ta metoda wymusza wykonanie kwerendy. |
Nie dotyczy. |
Nie dotyczy. |
|
ToList |
Konwertuje kolekcji do List.Ta metoda wymusza wykonanie kwerendy. |
Nie dotyczy. |
Nie dotyczy. |
|
ToLookup |
Umieszcza elementy w Lookup (słownika jeden do wielu) na podstawie funkcji selektor klucza.Ta metoda wymusza wykonanie kwerendy. |
Nie dotyczy. |
Nie dotyczy. |
Przykład składni wyrażenia kwerendy
Poniższy przykład kodu użyto zmiennej jawnie określone typy zakres w języku C# lub From As w klauzuli Visual Basic do oddania typu z podtypem przed uzyskaniem dostępu do członka, który jest dostępny tylko na podtypu.
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
class Plant
{
public string Name { get; set; }
}
class CarnivorousPlant : Plant
{
public string TrapType { get; set; }
}
static void Cast()
{
Plant[] plants = new Plant[] {
new CarnivorousPlant { Name = "Venus Fly Trap", TrapType = "Snap Trap" },
new CarnivorousPlant { Name = "Pitcher Plant", TrapType = "Pitfall Trap" },
new CarnivorousPlant { Name = "Sundew", TrapType = "Flypaper Trap" },
new CarnivorousPlant { Name = "Waterwheel Plant", TrapType = "Snap Trap" }
};
var query = from CarnivorousPlant cPlant in plants
where cPlant.TrapType == "Snap Trap"
select cPlant;
foreach (Plant plant in query)
Console.WriteLine(plant.Name);
/* This code produces the following output:
Venus Fly Trap
Waterwheel Plant
*/
}
Zobacz też
Zadania
Porady: zapytanie w ArrayList za pomocą LINQ
Informacje
Klauzula From (odwołanie w C#)
From — Klauzula (Visual Basic)
Koncepcje
Standardowe operatory zapytań — Omówienie
Wyrażenia kwerend LINQ (Przewodnik programowania w języku C#)