كيف وأين يتم استخدام العدادين

كيفية استخدام التعداد

Cells عداد

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

  1. Cells.GetEnumerator
  2. Row.GetEnumerator
  3. Range.GetEnumerator

تقوم جميع الطرق المذكورة أعلاه بإرجاع العداد الذي يسمح باجتياز مجموعة الخلايا التي تمت تهيئتها.

يوضح مثال التعليمات البرمجية التالي تنفيذ واجهة IEnumerator لمجموعة Cells.

عداد الصفوف

يمكن الوصول إلى عداد الصفوف أثناء استخدامRowCollection.GetEnumerator طريقة. يوضح مثال التعليمات البرمجية التالي تطبيق واجهة IEnumerator لـRowCollection.

عداد الأعمدة

يمكن الوصول إلى عداد الأعمدة أثناء استخدامColumnCollection.GetEnumerator طريقة. يوضح مثال التعليمات البرمجية التالي تطبيق واجهة IEnumerator لـColumnCollection.

أين يمكن استخدام العدادات

من أجل مناقشة مزايا استخدام العدادين، دعونا نأخذ مثالا في الوقت الحقيقي.

سيناريو

شرط التطبيق هو اجتياز جميع الخلايا في معينورقة عمللقراءة قيمهم. يمكن أن يكون هناك عدة طرق لتنفيذ هذا الهدف. يتم عرض عدد قليل أدناه.

استخدام نطاق العرض

باستخدام MaxDataRow وMaxDataColumn

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

  1. واجهات برمجة التطبيقات مثلماكس رو, MaxDataRow, MaxColumn, MaxDataColumn & MaxDisplayRangeتتطلب وقتًا إضافيًا لجمع الإحصائيات المقابلة. في حالة كون مصفوفة البيانات (صفوف × أعمدة) كبيرة، فإن استخدام واجهات برمجة التطبيقات هذه قد يفرض عقوبة على الأداء.
  2. في معظم الحالات، لا يتم إنشاء مثيل لجميع الخلايا في نطاق معين. في مثل هذه المواقف، لا يكون فحص كل خلية في المصفوفة فعالاً مقارنةً بفحص الخلايا التي تمت تهيئتها فقط.
  3. سيؤدي الوصول إلى خلية في حلقة كصف Cells وعمود إلى إنشاء مثيل لجميع كائنات الخلية في النطاق، مما قد يؤدي في النهاية إلى OutOfMemoryException.

خاتمة

بناءً على الحقائق المذكورة أعلاه، فيما يلي السيناريوهات المحتملة التي ينبغي فيها استخدام القائمين بالتعداد.

  1. مطلوب الوصول للقراءة فقط لمجموعة الخلايا، وهذا هو؛ الشرط هو فحص الخلايا فقط.
  2. يجب اجتياز عدد كبير من الخلايا.
  3. فقط الخلايا/الصفوف/الأعمدة التي تم تهيئتها سيتم اجتيازها.