Condividi tramite


Procedura: Interrogare i caratteri di una stringa (LINQ) (Visual Basic)

Poiché la String classe implementa l'interfaccia generica IEnumerable<T> , è possibile eseguire query su qualsiasi stringa come sequenza di caratteri. Tuttavia, questo non è un uso comune di LINQ. Per operazioni di corrispondenza di modelli complessi, usare la classe Regex.

Esempio

Nell'esempio seguente viene eseguito un'query su una stringa per determinare il numero di cifre numeriche contenute. Si noti che la query viene "riutilizzata" dopo l'esecuzione della prima volta. Ciò è possibile perché la query stessa non archivia alcun risultato effettivo.

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

Compilare il codice

Creare un progetto di applicazione console di Visual Basic con un'istruzione Imports per lo spazio dei nomi System.Linq.

Vedere anche