Udostępnij za pośrednictwem


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.

Zobacz też