Postupy: Dotazování na znaky v řetězci (LINQ) (Visual Basic)
Vzhledem k tomu, že String třída implementuje obecné IEnumerable<T> rozhraní, může být jakýkoli řetězec dotazován jako posloupnost znaků. Nejedná se ale o běžné použití LINQ. Pro komplexní operace porovnávání vzorů Regex použijte třídu.
Příklad
Následující příklad dotazuje řetězec k určení počtu číselných číslic, které obsahuje. Všimněte si, že dotaz se po prvním spuštění znovu použije. To je možné, protože samotný dotaz neukládá žádné skutečné výsledky.
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
Kompilace kódu
Vytvořte projekt konzolové aplikace jazyka Visual Basic s příkazem Imports
pro obor názvů System.Linq.
Viz také
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.