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

Numaralandırıcıları Nasıl Kullanılır

Hücreler Numaralandırıcı

Hücreler Numaralandırıcısına erişmenin çeşitli yolları vardır ve uygulama gereksinimlerine bağlı olarak bu yöntemlerden herhangi biri kullanılabilir. İşte hücreler numaralandırıcısını döndüren yöntemler.

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

Yukarıda bahsedilen tüm yöntemler, başlatılmış hücre koleksiyonunu gezinmeyi sağlayan numaralandırıcıyı döndürür.

Aşağıdaki kod örneği, Hücreler koleksiyonu için IEnumerator arabirimi uygulamasını göstermektedir.

Satırlar Numaralandırıcı

RowCollection.GetEnumerator kullanılırken Satırlar Numaralandırıcısına erişilebilir. Aşağıdaki kod örneği, RowCollection için IEnumerator arabiriminin uygulamasını göstermektedir.

Sütunlar Numaralandırıcı

ColumnCollection.GetEnumerator kullanılırken Sütunlar Numaralandırıcısına erişilebilir. Aşağıdaki kod örneği, ColumnCollection için IEnumerator arabirimini uygulamanın uygulamasını göstermektedir.

Numaralandırıcıları Nerede Kullanılacağı

Numaralandırıcıları kullanmanın avantajlarını tartışmak için, gerçek bir zaman örneği ele alalım.

Senaryo

Bir uygulama gereksinimi, belirli bir Worksheet içindeki tüm hücreleri gezerek değerlerini okumaktır. Bu hedefi uygulamanın birkaç yolu olabilir. Birkaç örnek aşağıda gösterilmektedir.

Görüntü Aralığı Kullanarak

MaxDataRow & MaxDataColumn Kullanarak

Yukarıda bahsedilen her iki yaklaşımın da, tüm hücreleri döngü içinde dolaşarak hücre değerlerini okuma mantığına daha veya daha az benzer olduğunu gözlemleyebilirsiniz. Bu, aşağıda tartışılan birçok nedenden biri olabilir.

  1. MaxRow, MaxDataRow, MaxColumn, MaxDataColumn ve MaxDisplayRange gibi API’lar, ilgili istatistikleri toplamak için ekstra zaman gerektirir. Veri matrisi (satır x sütun) büyükse, bu API’ların kullanılması performans cezası uygulayabilir.
  2. Çoğu durumda, verilen bir aralıktaki tüm hücreler oluşturulmamıştır. Bu tür durumlarda, matristeki her hücreyi kontrol etmek, yalnızca başlatılmış hücreleri kontrol etmekten daha verimli değildir.
  3. Hücreye döngü içinde Cells satır, sütun olarak erişmek, bir aralıktaki tüm hücre nesnelerinin oluşturulmasına neden olabilir, bu da sonunda OutOfMemoryException’a neden olabilir.

Sonuç

Yukarıda belirtilen gerçeklere dayanarak, aşağıdakiler, numaralandırıcıların kullanılması gereken olası senaryolarıdır.

  1. Yalnızca hücre koleksiyonunun salt okunur erişimi gereklidir, yani; gereksinim yalnızca hücreleri incelemektir.
  2. Birçok hücrenin dolaşılması gereklidir.
  3. Yalnızca başlatılmış hücreler/satırlar/sütunlar dolaşılmalıdır.