Numaralandırıcılar Nasıl ve Nerede Kullanılır?

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 bağlı olarak bu yöntemlerden herhangi biri kullanılabilir. Hücre numaralandırıcısını döndüren yöntemler şunlardır.

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

Yukarıda belirtilen yöntemlerin tümü, başlatılmış olan hücrelerin toplanmasına izin veren numaralandırıcıyı döndürür.

Aşağıdaki kod örneği, Cells koleksiyonu için IEnumerator arabiriminin uygulanmasını gösterir.

Satır Numaralandırıcı

Satır Numaralandırıcıya, kullanılarak 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ılarak erişilebilir.ColumnCollection.GetEnumerator yöntem. Aşağıdaki kod örneği, IEnumerator arabiriminin uygulanmasını gösterir.SütunKoleksiyonu.

Numaralandırıcılar nerede kullanılır?

Numaralandırıcı kullanmanın avantajlarını tartışmak için gerçek zamanlı bir örnek alalım.

Senaryo

Bir uygulama gereksinimi, belirli bir hücredeki tüm hücreleri geçmektirÇalışma kağıdıdeğerlerini okumak için. Bu hedefi gerçekleştirmenin birkaç yolu olabilir. Birkaç tanesi aşağıda gösterilmiştir.

Görüntü Aralığını Kullanma

MaxDataRow ve MaxDataColumn’u kullanma

Gördüğünüz gibi yukarıda bahsedilen her iki yaklaşım da aşağı yukarı benzer mantık kullanıyor; Hücre değerlerini okumak için koleksiyondaki tüm hücrelerin üzerinde döngü yapın. Bu, aşağıda tartışıldığı gibi çeşitli nedenlerden dolayı sorunlu olabilir.

  1. API’ler gibiMaxRow, MaxDataRow, Maksimum Sütun, MaxDataColumn & Maksimum Görüntü Aralığıilgili istatistikleri toplamak için ekstra zamana ihtiyaç vardır. Veri matrisinin (satır x sütun) büyük olması durumunda, bu API’lerin kullanılması performans kaybına neden olabilir.
  2. Çoğu durumda, belirli bir aralıktaki hücrelerin tümü başlatılmaz. Bu gibi durumlarda matristeki her hücreyi kontrol etmek, yalnızca başlatılan hücreleri kontrol etmekle karşılaştırıldığında çok verimli değildir.
  3. Döngüdeki bir hücreye Cells satır, sütun olarak erişilmesi, aralıktaki tüm hücre nesnelerinin başlatılmasına neden olur ve bu da sonuçta 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.

  1. Hücre koleksiyonuna salt okunur erişim gereklidir; gerekli olan sadece hücreleri incelemektir.
  2. Çok sayıda hücrenin geçilmesi gerekiyor.
  3. Yalnızca geçilecek hücreler/satırlar/sütunlar başlatıldı.