Nasıl yapılır: sorgu (LINQ) bir dizedeki karakterleri
Çünkü String sınıf uygulayan genel IEnumerable<T> arabirimi, herhangi bir dize bir karakter dizisi sorgulanabilir.Ancak, bu yaygın kullanımlarından biri değil LINQ.İşlem eşleştirme karmaşık desen için kullanmak Regex sınıfı.
Örnek
Aşağıdaki örnek, bir dize içerdiği sayısal basamak sayısını belirlemek için sorgular."İlk kez yürütüldükten sonra sorguyu yeniden," dikkat edin.Sorgu herhangi bir gerçek sonuçlar depolamaması nedeniyle bu mümkün olur.
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
class QueryAString
{
static void Main()
{
string aString = "ABCDE99F-J74-12-89A";
// Select only those characters that are numbers
IEnumerable<char> stringQuery =
from ch in aString
where Char.IsDigit(ch)
select ch;
// Execute the query
foreach (char c in stringQuery)
Console.Write(c + " ");
// Call the Count method on the existing query.
int count = stringQuery.Count();
Console.WriteLine("Count = {0}", count);
// Select all characters before the first '-'
IEnumerable<char> stringQuery2 = aString.TakeWhile(c => c != '-');
// Execute the second query
foreach (char c in stringQuery2)
Console.Write(c);
Console.WriteLine(System.Environment.NewLine + "Press any key to exit");
Console.ReadKey();
}
}
/* Output:
Output: 9 9 7 4 1 2 8 9
Count = 8
ABCDE99F
*/
Kod Derleniyor
Oluşturma bir Visual Studio hedefleyen proje .NET Framework sürüm 3.5.Varsayılan olarak, proje başvuru System.Core.dll sahiptir ve bir using yönergesi (C#) veya Imports deyimi (Visual Basic) System.Linq ad alanı.C# projeleri, ekleme bir using yönergesi System.IO ad alanı.
Projenize bu kodu kopyalayın.
Derlemek ve program çalıştırmak için F5 tuşuna basın.
Konsol penceresine çıkmak için herhangi bir tuşa basın.
Ayrıca bkz.
Görevler
Nasıl yapılır: normal ifadelerle LINQ sorguları birleştirme