0Pricing
C# Academy · درس

إنشاء السلاسل النصية

الضم وStringBuilder

إنشاء السلاسل النصية درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

ضم السلاسل النصية باستخدام +

إن أبسط طريقة لإنشاء سلسلة نصية هي ضم أجزائها باستخدام العامل +.

يُسمّى هذا بالضم. وهو يعمل جيداً مع عدد قليل من الأجزاء، مثل دمج تحية مع اسم.

class Program
{
    static void Main()
    {
        string name = "Sam";
        string greeting = "Hi, " + name;
        System.Console.WriteLine(greeting);
    }
}

استيفاء السلاسل النصية

الاستيفاء طريقة أوضح لإدراج القيم داخل النص.

ضعوا $ قبل السلسلة النصية، وأحاطوا المتغيرات بأقواس معقوفة. وستُدرج القيم في مواضعها تلقائياً.

class Program
{
    static void Main()
    {
        string name = "Sam";
        int age = 9;
        System.Console.WriteLine($"{name} is {age}");
    }
}

تكلفة += داخل الحلقات

يؤدي استخدام += لتوسيع سلسلة نصية داخل حلقة إلى بطء التنفيذ.

لأن السلاسل النصية غير قابلة للتغيير، فإن كل عملية += تنشئ سلسلة نصية جديدة تماماً وتنسخ إليها جميع الأحرف القديمة. ومع كثرة التكرارات، يهدر ذلك الوقت والذاكرة.

string result = "";
for (int i = 0; i < 1000; i++)
    result += i; // creates many strings

التعرّف على StringBuilder

صُمّم StringBuilder لتجميع النصوص بكفاءة.

يوجد في مساحة الأسماء System.Text. وبدلاً من إنشاء سلسلة نصية جديدة في كل مرة، يوسّع مخزناً داخلياً، وهو ما يكون أسرع بكثير عند إجراء إضافات كثيرة.

using System.Text;

StringBuilder sb = new StringBuilder();

الإلحاق باستخدام StringBuilder

استدعوا Append لإضافة نص إلى StringBuilder.

يمكنكم إلحاق أجزاء كثيرة واحداً تلو الآخر. ويحتفظ المنشئ بكل شيء في مخزنه حتى تطلبوا السلسلة النصية النهائية.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Hello");
        sb.Append(", world");
        System.Console.WriteLine(sb.ToString());
    }
}

الحصول على السلسلة النصية النهائية

إن StringBuilder ليس سلسلة نصية string بحد ذاته.

عند الانتهاء من الإلحاق، استدعوا ToString للحصول على النص النهائي. وبعد ذلك يمكنكم طباعته أو تخزينه مثل أي سلسلة نصية عادية.

using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("Done");
string final = sb.ToString();

الإلحاق داخل حلقة

هنا تظهر قوة StringBuilder.

أجروا الإلحاق داخل حلقة، وسينمو المنشئ بكفاءة مع تجنّب عمليات النسخ التي كان سينشئها +=. ينشئ هذا البرنامج سلسلة نصية من الأرقام.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 5; i++)
            sb.Append(i);
        System.Console.WriteLine(sb.ToString());
    }
}

AppendLine

يعمل AppendLine مثل Append، لكنه يضيف أيضاً سطراً جديداً بعد النص.

ويفيد ذلك في إنشاء مخرجات متعددة الأسطر، مثل قائمة يكون كل عنصر فيها في سطر مستقل.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("Line 1");
        sb.AppendLine("Line 2");
        System.Console.Write(sb.ToString());
    }
}

الإنشاء من الأحرف

يمكنكم إلحاق قيم char المفردة أيضاً، وليس السلاسل النصية الكاملة فقط.

يفيد ذلك عند تحويل النص حرفاً تلو الآخر، مثل تحويل كل حرف إلى أحرف كبيرة أثناء إنشاء نتيجة جديدة.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in "loud")
            sb.Append(char.ToUpper(c));
        System.Console.WriteLine(sb.ToString());
    }
}

متى تستخدمون كل أسلوب

عند التعامل مع عدد قليل من الأجزاء، يكون استخدام + أو الاستيفاء واضحاً ومناسباً.

أما عند إنشاء نص داخل حلقة أو ضم أجزاء كثيرة، ففضّلوا StringBuilder. والقاعدة العامة هي: استخدموا العوامل لعدد قليل من عمليات الضم، والمنشئ لعدد كبير منها.

string.Join

عندما تكون لديكم مجموعة من الأجزاء مسبقاً، يضمّها string.Join باستخدام فاصل.

مرّروا الفاصل أولاً، ثم العناصر. وهو بديل مختصر عن التكرار عند إنشاء قوائم بسيطة.

string[] parts = { "a", "b", "c" };
string joined = string.Join("-", parts);
// joined is "a-b-c"

تحقق سريع

اختبروا مدى فهمكم لإنشاء السلاسل النصية.

مراجعة

استخدموا + أو الاستيفاء لضم عدد قليل من السلاسل النصية، واستخدموا string.Join لقائمة من الأجزاء.

عند إنشاء نص داخل الحلقات، استخدموا StringBuilder: استدعوا Append أو AppendLine، ثم ToString للحصول على النتيجة. فهو يتجنب عمليات النسخ المكلفة التي ينفذها += لأن السلاسل النصية غير قابلة للتغيير.

الأسئلة الشائعة

هل درس «إنشاء السلاسل النصية» مجاني؟

نعم — نص درس «إنشاء السلاسل النصية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «إنشاء السلاسل النصية»؟

الضم وStringBuilder تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «إنشاء السلاسل النصية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. نوع char
  2. الأساليب المساعدة لـ Char
  3. التكرار على السلاسل النصية
  4. إنشاء السلاسل النصية
← العودة إلى C# Academy