Aracılığıyla paylaş


Nasıl yapılır: Dizedeki Karakterleri Sorgulama (LINQ) (Visual Basic)

String sınıfı genel IEnumerable<T> arabirimi uyguladığından, herhangi bir dize bir karakter dizisi olarak sorgulanabilir. Ancak, bu LINQ'in yaygın bir kullanımı değildir. Karmaşık desen eşleştirme işlemleri için sınıfını Regex kullanın.

Örnek

Aşağıdaki örnek, içerdiği sayısal basamak sayısını belirlemek için bir dizeyi sorgular. Unutmayın ki sorgu, ilk kez yürütüldükten sonra tekrar kullanılır. Sorgunun kendisi gerçek sonuçları depolamadığından bu mümkündür.

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

Kodu derleme

System.Linq ad alanı bildirimi içeren bir Imports Visual Basic konsol uygulaması projesi oluşturun.

Ayrıca bakınız