0Pricing
C# Academy · درس

التكرار على المجموعات

القوائم والمصفوفات والقواميس

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

المجموعات التي يمكنكم التكرار عليها

يمكن تكرار العديد من أنواع C# باستخدام foreach، مثل المصفوفات وList<T> والقواميس وغيرها.

تدعم جميعها التكرار لأنها تطبّق واجهة مشتركة. ولا تحتاجون إلى معرفة التفاصيل لاستخدامها.

التكرار على مصفوفة

تملك المصفوفات حجمًا ثابتًا يُحدَّد عند إنشائها.

يمكنكم التكرار على مصفوفة من أي نوع من العناصر بالطريقة نفسها.

double[] prices = { 9.99, 4.50, 19.00 };
foreach (var p in prices)
{
    Console.WriteLine(p);
}

التكرار على قائمة

يمكن أن تكبر List<T> أو تصغر. وهي إحدى أكثر المجموعات شيوعًا.

يبدو التكرار عليها تمامًا مثل التكرار على مصفوفة.

var fruits = new List<string> { "apple", "pear" };
foreach (var f in fruits)
{
    Console.WriteLine(f);
}

العد أثناء التكرار

قد ترغبون أحيانًا في استخدام عدّاد يدوي داخل foreach.

صرّحوا عن متغير قبل الحلقة، وزيدوه في كل تكرار.

var items = new List<string> { "a", "b", "c" };
int i = 0;
foreach (var item in items)
{
    Console.WriteLine(i + ": " + item);
    i++;
}

التكرار على قاموس

يخزن Dictionary<K,V> أزواجًا من المفتاح والقيمة.

يمنحكم التكرار عليه قيمة KeyValuePair تحتوي على .Key و.Value.

var ages = new Dictionary<string, int>
{
    ["Ada"] = 36,
    ["Linus"] = 54
};
foreach (var pair in ages)
{
    Console.WriteLine(pair.Key + "=" + pair.Value);
}

مفاتيح القاموس وقيمه

إذا كنتم تحتاجون إلى المفاتيح فقط أو إلى القيم فقط، فاستخدموا الخاصيتين .Keys أو .Values.

كل منهما مجموعة بحد ذاتها، ويمكنكم التكرار عليها.

foreach (var name in ages.Keys)
{
    Console.WriteLine(name);
}

التكرار على HashSet

يخزن HashSet<T> قيمًا فريدة، ويتم تجاهل القيم المكررة.

يمكنكم استخدام foreach معه، لكن الترتيب غير مضمون.

var tags = new HashSet<string> { "c#", "dotnet", "c#" };
foreach (var t in tags)
{
    Console.WriteLine(t);
}

التكرار المتداخل

يمكنكم وضع foreach داخل حلقة أخرى للتكرار على مجموعة من المجموعات.

تمر هذه الحلقة عبر كل صف، ثم عبر كل قيمة في ذلك الصف.

int[][] grid = { new[] {1, 2}, new[] {3, 4} };
foreach (var row in grid)
{
    foreach (var v in row)
    {
        Console.WriteLine(v);
    }
}

إنشاء نتيجة

من الأنماط الشائعة التكرار عبر مجموعة وإضافة العناصر المحوّلة إلى مجموعة أخرى.

نضاعف هنا كل رقم ونخزّن النتيجة في قائمة جديدة.

var nums = new List<int> { 1, 2, 3 };
var doubled = new List<int>();
foreach (var n in nums)
{
    doubled.Add(n * 2);
}
Console.WriteLine(string.Join(",", doubled));

المجموعات الفارغة

إذا لم تكن للمجموعة أي عناصر، فلن يُنفَّذ جسم foreach مطلقًا.

لا يحدث أي خطأ. وهذا يجعل foreach آمنًا حتى عندما تكون القائمة فارغة.

var empty = new List<int>();
foreach (var x in empty)
{
    Console.WriteLine("never printed");
}
Console.WriteLine("done");

IEnumerable: الرابط المشترك

كل مجموعة قابلة للتكرار تطبّق IEnumerable<T>.

وهذا هو العقد الذي يعتمد عليه foreach. وبفضله تعمل صيغة الحلقة نفسها مع المصفوفات والقوائم والمجموعات والقواميس.

تحقق سريع

اختبر مدى فهمك للتكرار عبر المجموعات.

مراجعة

رأيت كيف يعمل foreach مع المصفوفات والقوائم والقواميس والمجموعات.

تشترك هذه الأنواع في عقد IEnumerable<T>، ولذلك تناسبها جميعًا صيغة حلقة واحدة. المجموعات الفارغة آمنة، وتنتج القواميس أزواجًا من المفتاح والقيمة.

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

هل درس «التكرار على المجموعات» مجاني؟

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

ماذا ستتعلم في «التكرار على المجموعات»؟

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

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

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

كم من الوقت يستغرق درس «التكرار على المجموعات»؟

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

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

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

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

  1. حلقة foreach
  2. التكرار على المجموعات
  3. break وcontinue
  4. أخطاء التكرار الشائعة
← العودة إلى C# Academy