كيفية حساب عدد مرات ظهور حرف أو سلسلة فرعية في نص في C#؟
مرحبًا بالجميع! أنا مطور C# مبتدئ وواجهت مهمة تبدو بسيطة، لكنني لا أستطيع إيجاد حل أنيق. أحتاج إلى حساب عدد مرات ظهور حرف معين (مثل 'a') في نص. حاولت كتابة حلقة يدويًا، لكنها تبدو ضخمة. إليك الكود الحالي الخاص بي:
string text = "Hello, world! Hello, C#!";
char target = 'l';
int count = 0;
for (int i = 0; i < text.Length; i++)
{
if (text[i] == target)
count++;
}
Console.WriteLine(count); // يطبع 4
هذا يعمل، لكني أعتقد أنه يجب أن يكون هناك حل مدمج في C#. بالإضافة إلى ذلك، أحتاج إلى حساب ليس فقط الأحرف، بل أيضًا السلاسل الفرعية الكاملة. على سبيل المثال، كم مرة تظهر كلمة "Hello" في النص "HelloHelloWorld". إذا استخدمت نفس النهج مع الحلقة، يصبح الأمر معقدًا جدًا للسلاسل الفرعية — حيث يجب التحقق من التطابق عبر عدة مؤشرات.
هل توجد طرق جاهزة في .NET لحساب مرات الظهور؟ ربما شيء مثل