IEnumerable مقابل IEnumerator: الفرق والمقارنة

IEnumerable و IEnumerator كلاهما واجهات متوفرة في C #. الأول هو وحدة نمطية ، في حين أن الأخير هو كائن. 

IEnumerable ينتج IEnumerator. هنا يتم استخدام GetEnumerator للحصول على IEnumerator ، حيث يتم استخدام كل حلقة لإنشاء رمز يستخدم Enumerator. العداد يختلف عن IEnumerator لأن IEnumerator هو واجهة. العداد يطبقها.

الوجبات السريعة الرئيسية

  1. IEnumerable هي واجهة تتيح التكرار عبر مجموعة من الكائنات ، بينما IEnumerator عبارة عن فئة تنفذ واجهة IEnumerator وتوفر طرقًا لاجتياز مجموعة.
  2. يوفر IEnumerable طريقة واحدة (GetEnumerator) تقوم بإرجاع كائن IEnumerator ، بينما يوفر IEnumerator طرقًا للتنقل عبر المجموعة (MoveNext) واسترداد الكائن الحالي (الحالي).
  3. يتم استخدام IEnumerable لإنشاء مجموعات يمكن تكرارها ، بينما يتم استخدام IEnumerator لاجتياز تلك المجموعات.

IEnumerable مقابل IEnumerator

الفرق بين IEnumerable و IEnumerator هو أعمال IEnumerable للواجهة العامة ، ويعمل IEnumerator لجميع الواجهات غير العامة. IEnumerable يشير إلى كائن يمكن تعداده ، ولكن يتم تنفيذ IEnumerator باستخدام كل عبارة للتكرار. تستخدم الواجهة IEnumerable IEnumerator لتكرار جميع العناصر المستخدمة لكل عبارة.

IEnumerable مقابل IEnumerator

يستخدم IEnumerable للعثور على كائن يستخدم كواجهة. يتم استخدامه لتكرار جميع العناصر في المجموعة.

تسهل عملية التكرار اجتياز المجموعة. يعمل ككائن. GetEnumerator هي طريقة تُستخدم لتنفيذ واجهة IEnumerator.

يحتوي IEnumerator على طريقتين ، إعادة تعيين () و MoveNext () ، وله خاصية ممتدة تُعرف باسم Current. MoveNext () هي طريقة تنتج قيمة منطقية تشير إلى عنصر نهاية القائمة. طريقة إعادة التعيين تجعل العداد موضعه الافتراضي.

جدول المقارنة

معلمات المقارنةلا تعدالبسط
نوع الواجهةعامغير عام
عدد الطرقواحدالمستوى الثاني⁧⁩
الإسترجاع :البسطبدون اضاءة
حالة المؤشرلا يمكن الاحتفاظ بهايمكن الاحتفاظ بها
منتج كائن معدودلكل نتيجة بيان
طريقة الكتابةملخصخرسانة

ما هو IEnumerable؟

هذه واجهة يتم تنفيذها بواسطة فئة يمكن تعدادها. المجموعة الكاملة بتنسيق c# يمكن تنفيذ واجهة IEnumerable. تقوم بإرجاع IEnumerator. لا يتغير حسب محددات الوصول المستخدمة في الكود.

اقرأ أيضا:  سبوتيفي مقابل المد والجزر: الفرق والمقارنة

لدى IEnumerable طريقة تُعرف باسم GetEnumerator. هذا التنفيذ يتم داخل الفصل فقط.

تسهل عملية التكرار اجتياز المجموعة. يعمل ككائن. GetEnumerator هي طريقة تُستخدم لتنفيذ واجهة IEnumerator.

تُعرف IEnumerable بأنها واجهة عامة نظرًا لأن التعليمات البرمجية مكتوبة بحجم أصغر جدًا لأنها تحتاج إلى التنفيذ لمرة واحدة فقط. لم يحدث ذلك يهم كم عدد المنشئات المستخدمة في تنفيذ التعليمات البرمجية لتكرار جميع العناصر.

يحتوي الكود على صيانة منخفضة لأن التعديل على الكود يخضع لنظام أساسي واحد ولا يتطلب أي تغييرات إضافية. يستخدم التجريد لتكرار جميع العناصر في المصفوفة.

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

ما هو IEnumerator؟

له طريقتان لتنفيذ التكرار لجميع العناصر في المجموعة. له طريقتان هما MoveNext و Reset. MoveNext هي طريقة تشير إلى أن التكرار لم يصل إلى العنصر الأخير في المجموعة.

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

أخيرًا ، الكائن الوحيد هو Current ، والذي يعطي العنصر الحالي كنتيجة للتكرار. لديها بعض الوصول المحدد إلى عناصرها. يوفر فقط الوصول للقراءة فقط إلى كل صفيفها.

اقرأ أيضا:  برنامج TeamViewer مقابل VNC: الفرق والمقارنة

يستدعي IEnumerator الخاصية الحالية ، المسؤولة عن إرجاع العنصر في القائمة المستخدمة حاليًا. يستخدم طريقتين وخاصية لتكرار الكائن.

تستخدم كل عبارة قائمة المصفوفات ، وتبدأ التكرار من خلال المضي قدمًا ، وتستخدم إحدى الطرق. لا يمكن لـ IEnumerator إرجاع IEnumerable.

يمكنه بسهولة استعادة حالة المؤشر الحالية. يستخدم IEnumerator طريقة محددة للكتابة. يبدأ التكرار في كومة من خلال تكرار العنصر الأول من المكدس والانتهاء بالعنصر الأخير في المكدس.

الاختلافات الرئيسية بين IEnumerable و IEnumerator

  1. يتم استخدام IEnumerable للواجهة العامة ، ولكن يتم استخدام IEnumerator للواجهة غير العامة.
  2. لدى IEnumerable طريقة واحدة فقط ، في حين أن IEnumerator له طريقتان فقط.
  3. يمكن لـ IEnumerable إرجاع IEnumerator ، لكن لا يمكن لـ IEnumerator إرجاع IEnumerable.
  4. لا يمكن لـ IEnumerable الاحتفاظ بحالة المؤشر الحالية ، ولكن يمكن لـ IEnumerator الاحتفاظ بها.
  5. يُظهر IEnumerable كائنًا تم تعداده ، بينما يحتوي IEnumerator على كائن لكل عبارة.
  6. IEnumerable هي طريقة مجردة للكتابة ، لكن IEnumerator يستخدم كتابة ملموسة.
مراجع حسابات
  1. https://ieeexplore.ieee.org/abstract/document/7883396/

آخر تحديث: 25 يونيو 2023

النقطة 1
طلب واحد؟

لقد بذلت الكثير من الجهد في كتابة منشور المدونة هذا لتقديم قيمة لك. سيكون مفيدًا جدًا بالنسبة لي ، إذا كنت تفكر في مشاركته على وسائل التواصل الاجتماعي أو مع أصدقائك / عائلتك. المشاركة هي ♥ ️

أفكار 22 حول "IEnumerable vs IEnumerator: الفرق والمقارنة"

  1. نشكرك على تقديم هذه المقارنة الشاملة بين IEnumerable و IEnumerator. إنه واضح وموجز، مما يجعل من السهل فهم الاختلافات بين الواجهتين.

    رد
  2. يعد هذا المنشور مصدرًا قيمًا لفهم الاختلافات بين IEnumerable وIEnumerator. يعتبر التقسيم دقيقًا وثاقبًا، مما يجعل من السهل فهم وظائف كلتا الواجهتين.

    رد
  3. إن شرحك لكيفية عمل IEnumerable و IEnumerator في C# ممتاز. إنه لأمر رائع أن نرى المقارنة والتباين بين هذه الواجهات.

    رد
  4. قدم هذا المنشور مقارنة شاملة وثاقبة للغاية بين IEnumerable و IEnumerator. إنه مرجع رائع للمطورين الذين يسعون إلى فهم الاختلافات بين الواجهتين.

    رد
  5. هذا منشور غني بالمعلومات حول IEnumerable و IEnumerator. يُسهل جدول المقارنة فهم الاختلافات الرئيسية بين الواجهتين.

    رد
  6. شكرًا لك على الشرح التفصيلي للاختلافات بين IEnumerable وIEnumerator. وأنا أقدر وضوح المقارنة الخاصة بك.

    رد
  7. يعد تفصيل IEnumerable و IEnumerator ممتازًا - فهو يغطي الاختلافات الرئيسية بشكل شامل ويساعد في فهم وظائف كلتا الواجهتين.

    رد

اترك تعليق

هل تريد حفظ هذه المقالة لوقت لاحق؟ انقر فوق القلب الموجود في الزاوية اليمنى السفلية للحفظ في مربع المقالات الخاصة بك!