Numaralandırıcılar Nasıl ve Nerede Kullanılır?
Numaralandırıcı, bir kapsayıcı veya koleksiyon arasında geçiş yapma yeteneği sağlayan bir nesnedir. Numaralandırıcılar, koleksiyondaki verileri okumak için kullanılabilir, ancak temeldeki koleksiyonu değiştirmek için kullanılamazlar, oysa IEnumerable, bir IEnumerator arabirimi döndüren GetEnumerator yöntemini tanımlayan bir arabirimdir; bu da, salt okunur erişime izin verir. bir koleksiyon.
Aspose.Cells API’ler bir grup numaralandırıcı sağlar, ancak bu makale temel olarak aşağıda listelenen üç türü tartışır.
- Cells Numaralandırıcı
- Satır Numaralandırıcı
- Sütun Numaralandırıcı
Numaralandırıcılar nasıl kullanılır?
Cells Numaralandırıcı
Cells Numaralandırıcıya erişmenin çeşitli yolları vardır ve uygulama gereksinimlerine göre bu yöntemlerden herhangi biri kullanılabilir. İşte hücre numaralandırıcısını döndüren yöntemler.
Yukarıda belirtilen yöntemlerin tümü, başlatılmış olan hücrelerin koleksiyonunda gezinmeye izin veren numaralandırıcıyı döndürür.
Aşağıdaki kod örneği, bir Cells koleksiyonu için IEnumerator arabiriminin uygulanmasını gösterir.
Satır Numaralandırıcı
Satırlar Numaralandırıcı kullanılırken erişilebilir.RowCollection.GetEnumerator yöntem. Aşağıdaki kod örneği, IEnumerator arabiriminin uygulanmasını gösterir.Satır Koleksiyonu.
Sütun Numaralandırıcı
Sütun Numaralandırıcıya, kullanılırken erişilebilir.ColumnCollection.GetEnumerator yöntem. Aşağıdaki kod örneği, IEnumerator arabiriminin uygulanmasını gösterir.Sütun Koleksiyonu.
Numaralandırıcılar nerede kullanılır?
Numaralandırıcı kullanmanın avantajlarını tartışmak için gerçek zamanlı bir örnek ele alalım.
Senaryo
Bir uygulama gereksinimi, belirli bir hücredeki tüm hücreleri geçmektir.Çalışma kağıdıdeğerlerini okumaktır. Bu hedefi gerçekleştirmenin birkaç yolu olabilir. Birkaçı aşağıda gösterilmiştir.
Görüntüleme Aralığını Kullanma
MaxDataRow ve MaxDataColumn’u Kullanma
Yukarıda bahsedilen yaklaşımların her ikisinin de aşağı yukarı benzer bir mantık kullandığını gözlemleyebileceğiniz gibi; hücre değerlerini okumak için koleksiyondaki tüm hücreler üzerinde döngü yapın. Bu, aşağıda tartışıldığı gibi birkaç nedenden dolayı sorunlu olabilir.
- gibi API’lerMaxRow, MaxDataRow, Maksimum Sütun, MaxDataColumn & Maksimum Görüntü Aralığıilgili istatistikleri toplamak için fazladan zaman gerektirir. Veri matrisinin (satır x sütun) büyük olması durumunda, bu API’lerin kullanılması performans düşüşüne neden olabilir.
- Çoğu durumda, belirli bir aralıktaki tüm hücreler örneklenmez. Bu gibi durumlarda, matristeki her hücreyi kontrol etmek, yalnızca başlatılmış hücreleri kontrol etmeye kıyasla o kadar verimli değildir.
- Bir döngüdeki bir hücreye Cells satır, sütun olarak erişilmesi, bir aralıktaki tüm hücre nesnelerinin somutlaştırılmasına neden olur ve bu da sonunda OutOfMemoryException’a neden olabilir.
Çözüm
Yukarıda belirtilen gerçeklere dayanarak, numaralandırıcıların kullanılması gereken olası senaryolar aşağıdadır.
- Hücre koleksiyonuna salt okunur erişim gereklidir, yani; gereklilik sadece hücreleri incelemektir.
- Çok sayıda hücre geçilecek.
- Geçiş yapılacak yalnızca başlatılmış hücreler/satırlar/sütunlar.