Porady: wykonywanie zapytań o znaki w ciągu (LINQ) (Visual Basic)
String Ponieważ klasa implementuje interfejs ogólnyIEnumerable<T>, wszystkie ciągi mogą być odpytywane jako sekwencja znaków. Jednak nie jest to typowe zastosowanie LINQ. W przypadku złożonych operacji dopasowywania wzorców użyj Regex klasy .
Przykład
Poniższy przykład wysyła zapytanie do ciągu w celu określenia liczby cyfr, które zawiera. Należy pamiętać, że zapytanie jest "ponownie używane" po jego wykonaniu po raz pierwszy. Jest to możliwe, ponieważ samo zapytanie nie przechowuje żadnych rzeczywistych wyników.
Class QueryAString
Shared Sub Main()
' A string is an IEnumerable data source.
Dim aString As String = "ABCDE99F-J74-12-89A"
' Select only those characters that are numbers
Dim stringQuery = From ch In aString
Where Char.IsDigit(ch)
Select ch
' Execute the query
For Each c As Char In stringQuery
Console.Write(c & " ")
Next
' Call the Count method on the existing query.
Dim count As Integer = stringQuery.Count()
Console.WriteLine(System.Environment.NewLine & "Count = " & count)
' Select all characters before the first '-'
Dim stringQuery2 = aString.TakeWhile(Function(c) c <> "-")
' Execute the second query
For Each ch In stringQuery2
Console.Write(ch)
Next
Console.WriteLine(System.Environment.NewLine & "Press any key to exit")
Console.ReadKey()
End Sub
End Class
' Output:
' 9 9 7 4 1 2 8 9
' Count = 8
' ABCDE99F
Kompilowanie kodu
Utwórz projekt aplikacji konsolowej języka Visual Basic z instrukcją Imports
dla przestrzeni nazw System.Linq.