Freigeben über


Vorgehensweise: Abfragen von Zeichen in einer Zeichenfolge (LINQ) (Visual Basic)

Da die String Klasse die generische IEnumerable<T> Schnittstelle implementiert, kann jede Zeichenfolge als Abfolge von Zeichen abgefragt werden. Dies ist jedoch keine häufige Verwendung von LINQ. Verwenden Sie für komplexe Musterabgleichsvorgänge die Regex Klasse.

Beispiel

Das folgende Beispiel fragt eine Zeichenfolge ab, um die Anzahl der darin enthaltenen numerischen Ziffern zu bestimmen. Beachten Sie, dass die Abfrage nach der ersten Ausführung "wiederverwendet" wird. Dies ist möglich, da die Abfrage selbst keine tatsächlichen Ergebnisse speichert.

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

Kompilieren des Codes

Erstellen Sie ein Visual Basic-Konsolenanwendungsprojekt mit einer Imports Anweisung für den System.Linq-Namespace.

Siehe auch