كيف وأين يتم استخدام العدادين
العداد هو كائن يوفر القدرة على اجتياز حاوية أو مجموعة. يمكن استخدام العدادات لقراءة البيانات الموجودة في المجموعة، ولكن لا يمكن استخدامها لتعديل المجموعة الأساسية، في حين أن IEnumerable عبارة عن واجهة تحدد طريقة واحدة GetEnumerator والتي ترجع واجهة IEnumerator، وهذا بدوره يسمح بالوصول للقراءة فقط إلى مجموعة.
توفر واجهات برمجة التطبيقات Aspose.Cells مجموعة من العدادين، ومع ذلك، تناقش هذه المقالة بشكل أساسي الأنواع الثلاثة كما هو موضح أدناه.
- Cells عداد
- عداد الصفوف
- عداد الأعمدة
كيفية استخدام التعداد
Cells عداد
هناك طرق مختلفة للوصول إلى عداد Cells، ويمكن استخدام أي من هذه الطرق بناءً على متطلبات التطبيق. فيما يلي الطرق التي تقوم بإرجاع عداد الخلايا.
تقوم جميع الطرق المذكورة أعلاه بإرجاع العداد الذي يسمح باجتياز مجموعة الخلايا التي تمت تهيئتها.
يوضح مثال التعليمات البرمجية التالي تنفيذ واجهة IEnumerator لمجموعة Cells.
عداد الصفوف
يمكن الوصول إلى عداد الصفوف أثناء استخدامRowCollection.GetEnumerator طريقة. يوضح مثال التعليمات البرمجية التالي تطبيق واجهة IEnumerator لـRowCollection.
عداد الأعمدة
يمكن الوصول إلى عداد الأعمدة أثناء استخدامColumnCollection.GetEnumerator طريقة. يوضح مثال التعليمات البرمجية التالي تطبيق واجهة IEnumerator لـColumnCollection.
أين يمكن استخدام العدادات
من أجل مناقشة مزايا استخدام العدادين، دعونا نأخذ مثالا في الوقت الحقيقي.
سيناريو
شرط التطبيق هو اجتياز جميع الخلايا في معينورقة عمللقراءة قيمهم. يمكن أن يكون هناك عدة طرق لتنفيذ هذا الهدف. يتم عرض عدد قليل أدناه.
استخدام نطاق العرض
باستخدام MaxDataRow وMaxDataColumn
كما يمكنك ملاحظة أن كلا النهجين المذكورين أعلاه يستخدمان منطقًا مشابهًا إلى حد ما، أي؛ قم بالتكرار فوق جميع الخلايا في المجموعة لقراءة قيم الخلية. قد يكون هذا مشكلة لعدد من الأسباب كما هو موضح أدناه.
- واجهات برمجة التطبيقات مثلماكس رو, MaxDataRow, MaxColumn, MaxDataColumn & MaxDisplayRangeتتطلب وقتًا إضافيًا لجمع الإحصائيات المقابلة. في حالة كون مصفوفة البيانات (صفوف × أعمدة) كبيرة، فإن استخدام واجهات برمجة التطبيقات هذه قد يفرض عقوبة على الأداء.
- في معظم الحالات، لا يتم إنشاء مثيل لجميع الخلايا في نطاق معين. في مثل هذه المواقف، لا يكون فحص كل خلية في المصفوفة فعالاً مقارنةً بفحص الخلايا التي تمت تهيئتها فقط.
- سيؤدي الوصول إلى خلية في حلقة كصف Cells وعمود إلى إنشاء مثيل لجميع كائنات الخلية في النطاق، مما قد يؤدي في النهاية إلى OutOfMemoryException.
خاتمة
بناءً على الحقائق المذكورة أعلاه، فيما يلي السيناريوهات المحتملة التي ينبغي فيها استخدام القائمين بالتعداد.
- مطلوب الوصول للقراءة فقط لمجموعة الخلايا، وهذا هو؛ الشرط هو فحص الخلايا فقط.
- يجب اجتياز عدد كبير من الخلايا.
- فقط الخلايا/الصفوف/الأعمدة التي تم تهيئتها سيتم اجتيازها.