التكرار على قيم التعداد
عدّدوا جميع الأعضاء باستخدام Enum.GetValues
التكرار على قيم التعداد درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.
سرد أعضاء التعداد
قد تحتاج أحيانًا إلى كل قيم التعداد، مثلًا لإنشاء قائمة. توفر لك Enum.GetValues هذه القيم.
using System;
enum Day { Mon, Tue, Wed }
class Program {
static void Main() {
foreach (Day d in Enum.GetValues<Day>())
Console.WriteLine(d);
}
}GetValues العام
تعيد الدالة العامة Enum.GetValues<T>() مصفوفة محددة النوع يمكنك تكرار عناصرها مباشرةً.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Main() {
Color[] all = Enum.GetValues<Color>();
Console.WriteLine(all.Length);
}
}الحصول على أسماء الأعضاء
تعيد Enum.GetNames<T>() أسماء الأعضاء كسلاسل نصية.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Main() {
foreach (string name in Enum.GetNames<Color>())
Console.WriteLine(name);
}
}الأسماء والقيم معًا
كرّر القيم وحوّلها إلى int لطباعة الاسم والرقم الأساسي معًا.
using System;
enum Color { Red = 1, Green = 2, Blue = 4 }
class Program {
static void Main() {
foreach (Color c in Enum.GetValues<Color>())
Console.WriteLine(c + " = " + (int)c);
}
}عدّ الأعضاء
يخبرك طول مصفوفة القيم بعدد الأعضاء التي يتضمنها التعداد.
using System;
enum Suit { Hearts, Diamonds, Clubs, Spades }
class Program {
static void Main() {
int count = Enum.GetValues<Suit>().Length;
Console.WriteLine(count);
}
}إنشاء قائمة
يُعدّ تكرار القيم مناسبًا جدًا لطباعة قائمة اختيارات مرقّمة.
using System;
enum Option { Start, Settings, Quit }
class Program {
static void Main() {
int i = 1;
foreach (Option o in Enum.GetValues<Option>())
Console.WriteLine(i++ + ") " + o);
}
}التصفية أثناء التكرار
يمكنك تخطي أعضاء معيّنين، مثل العضو None المستخدم كقيمة خاصة، أثناء التكرار.
using System;
enum State { None, Active, Closed }
class Program {
static void Main() {
foreach (State s in Enum.GetValues<State>())
if (s != State.None)
Console.WriteLine(s);
}
}التكرار باستخدام LINQ
يمكنك دمج Enum.GetValues مع LINQ لإجراء التصفية أو التحويل.
using System;
using System.Linq;
enum Level { Low = 1, Medium = 2, High = 3 }
class Program {
static void Main() {
var highOnes = Enum.GetValues<Level>().Where(l => (int)l >= 2);
foreach (var l in highOnes) Console.WriteLine(l);
}
}الصيغة الأقدم غير العامة
قبل ظهور الأنواع العامة، كنت تستخدم Enum.GetValues(typeof(T))، التي تعيد مصفوفة غير محددة النوع.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Main() {
foreach (Color c in Enum.GetValues(typeof(Color)))
Console.WriteLine(c);
}
}علامات التعداد والتكرار
في التعدادات التي تستخدم Flags، يسرد التكرار كل علامة منفردة، كما تظهر الأعضاء المجمّعة الجاهزة أيضًا؛ لذلك أجرِ التصفية عند الحاجة.
using System;
[Flags]
enum Perm { Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
foreach (Perm p in Enum.GetValues<Perm>())
Console.WriteLine(p + " = " + (int)p);
}
}لماذا نكرّر التعدادات؟
يحافظ التكرار على تزامن واجهة المستخدم والتحقق من الصحة مع التعداد: عند إضافة عضو، ستدرجه حلقات التكرار تلقائيًا.
using System;
enum Size { Small, Medium, Large }
class Program {
static void Main() {
foreach (Size s in Enum.GetValues<Size>())
Console.WriteLine("Available: " + s);
}
}تحقق سريع
اختبر فهمك لتكرار التعدادات.
مراجعة
تعيد Enum.GetValues<T>() كل عضو في مصفوفة محددة النوع، بينما تعيد Enum.GetNames<T>() أسماء هذه الأعضاء. يمكنك التكرار لطباعة الأسماء مع قيمها الرقمية، أو عدّ الأعضاء، أو إنشاء القوائم، أو إجراء التصفية باستخدام LINQ.
يحافظ التكرار على تزامن القوائم والتحقق من الصحة تلقائيًا مع نمو التعداد.
الأسئلة الشائعة
هل درس «التكرار على قيم التعداد» مجاني؟
نعم — نص درس «التكرار على قيم التعداد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «التكرار على قيم التعداد»؟
عدّدوا جميع الأعضاء باستخدام Enum.GetValues تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التكرار على قيم التعداد»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف التعدادات واستخدامها
- تعدادات Flags والدمج على مستوى البت
- تحويلات التعداد وتحليله
- التكرار على قيم التعداد