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