كيفية القيام بما يلي: استعلام عن الأحرف في سلسلة (LINQ)
لأن فئة String تطبّق الواجهة IEnumerable<T> العامة، أي سلسلة يمكن استعلامها كتسلسل من الأحرف. على الرغم من ذلك، هذا ليس استخدام شائع لLINQ. لعمليات مطابقة النمط المعقدة, استخدم فئة Regex.
مثال
يستعلم المثال التالي سلسلة لتحديد عدد الخانات الرقمية التي تحتويها. لاحظ أن الاستعلام "يعاد استخدامه" بعد أن يتم تنفيذه أول مرة. ويعد ذلك ممكناً لأن الاستعلام نفسه لا يخزن أية نتائج بالفعل.
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
*/
التحويل البرمجي للتعليمات البرمجية
قم بإنشاء مشروع Visual Studio الذي يستهدف اصدار 3.5 من .NET Framework. بشكل افتراضي، يحتوي المشروع مرجع إلى System.Core.dll و توجيهات (#C) using أو عبارة Imports (Visual Basic) لمساحة الاسم System.Linq. في مشاريع C#, قم بإضافة واجهة using لمساحة اسم System.IO.
انسخ التعليمات البرمجية لمشروعك.
اضغط F5 للتحويل البرمجي للبرنامج وتشغيله.
اضغط أي مفتاح للخروج من نافذة وحدة التحكم.
راجع أيضًا:
المهام
كيفية القيام بما يلي: جمع استعلامات LINQ مع تعابير عادية