Logo ar.removalsclassifieds.com

الفرق بين IEnumerable و IEnumerator (مع الجدول)

جدول المحتويات:

Anonim

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

IEnumerable ينتج IEnumerator. هنا يتم استخدام GetEnumerator للحصول على IEnumerator. تُستخدم حلقة Foreach لإنشاء رمز يستخدم Enumerator. العداد يختلف عن IEnumerator لأن IEnumerator هو واجهة. العداد ينفذها.

IEnumerable مقابل IEnumerator

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

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

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

جدول المقارنة بين IEnumerable و IEnumerator

معلمات المقارنة

أنا لا يحصى

البسط

نوع الواجهة نوعي غير عام
عدد الطرق واحد اثنين
عائدات البسط لا أحد
حالة المؤشر لا يمكن الاحتفاظ بها يمكن الاحتفاظ بها
منتج كائن معدود لكل نتيجة بيان
طريقة الكتابة الملخص أسمنت

ما هو IEnumerable؟

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

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

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

ما هو IEnumerator؟

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

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

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

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

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

الاستنتاجات

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

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

تسهل عملية التكرار اجتياز المجموعة في IEnumerable. يعمل ككائن. MoveNext هي طريقة تنتج قيمة منطقية تشير إلى عنصر نهاية القائمة. يعود IEnumerable إلى واجهة IEnumerator عندما يخضع لعملية التكرار.

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

الفرق بين IEnumerable و IEnumerator (مع الجدول)