Logo tr.removalsclassifieds.com

IEnumerable ve IEnumerator Arasındaki Fark (Tablolu)

İçindekiler:

Anonim

IEnumerable ve IEnumerator, her ikisi de C# ile kullanılabilen arabirimlerdir. Birincisi bir modül, ikincisi ise bir nesnedir.

IEnumerable, IEnumerator üretir. Burada GetEnumerator, IEnumerator'ı almak için kullanılır. Foreach döngüsü, Numaralandırıcı kullanan kod oluşturmak için kullanılır. Bir numaralandırıcı, IEnumerator bir arabirim olduğundan, IEnumerator'dan farklıdır. Numaralandırıcı bunu uygular.

IEnumerable vs IEnumerator

IEnumerable ve IEnumerator arasındaki fark, genel arabirim için IEnumerable çalışmalarıdır ve IEnumerator, genel olmayan tüm arabirimler için çalışır. IEnumerable, numaralandırılabilen bir nesneye işaret eder, ancak yineleme için her ifade kullanılarak IEnumerator uygulanır. IEnumerable arabirimi, her bir ifade için kullanarak tüm öğelerinin yinelenmesi için IEnumerator'ı kullanır.

IEnumerable, arayüz olarak kullanılan bir nesneyi bulmak için kullanılır. Koleksiyondaki tüm öğelerin yinelenmesi için kullanılır. Yineleme işlemi, koleksiyonda geçiş yapmayı kolaylaştırır. Bir nesne olarak hareket eder. GetEnumerator, IEnumerator arabiriminin uygulanması için kullanılan bir yöntemdir.

IEnumerator'ın Reset() ve MoveNext() olmak üzere iki yöntemi vardır ve Current olarak bilinen genişletilmiş bir özelliği vardır. MoveNext(), listenin son öğesini gösteren bir Boole değeri üreten bir yöntemdir. Sıfırlama yöntemi, numaralandırıcıyı varsayılan konumu yapar.

IEnumerable ve IEnumerator Arasındaki Karşılaştırma Tablosu

Karşılaştırma Parametreleri

Numaralandırılabilir

IEnumerator

Arayüz Türü Genel jenerik olmayan
Yöntem Sayısı Bir 2
İadeler IEnumerator Hiçbiri
İmleç Durumu tutulamaz tutabilir
Ürün Numaralandırılmış nesne Her ifade sonucu için
Yazma Şekli Soyut Beton

IEnumerable nedir?

Bu, numaralandırılabilir bir sınıf tarafından uygulanan bir arabirimdir. C#'daki tüm koleksiyon bir IEnumerable arabirimi uygulayabilir. IEnumerator'ı döndürür. Kodda kullanılan erişim belirteçlerine göre değişmez. IEnumerable, GetEnumerator olarak bilinen bir metoda sahiptir. Bu uygulama sadece sınıf içinde yapılır.

Yineleme işlemi, koleksiyonda geçiş yapmayı kolaylaştırır. Bir nesne olarak hareket eder. GetEnumerator, IEnumerator arabiriminin uygulanması için kullanılan bir yöntemdir. IEnumerable, yalnızca bir kerelik uygulamaya ihtiyaç duyduğu için kod çok daha küçük yazıldığından genellikle genel bir arabirim olarak bilinir. Tüm öğeleri yinelemek için kod uygulamasında kaç kurucunun kullanıldığı önemli değildir.

Koddaki değişiklik tek bir platform altında olduğundan ve herhangi bir ekstra değişiklik gerektirmediğinden kodun bakımı düşüktür. Dizideki tüm öğelerin yinelenmesi için soyutlamayı kullanır. Tüm öğelerin yinelenmesi için kullanılan bir IEnumerator yineleyici kullanır. Jenerik bir sınıf olduğu için dizideki elemanların iterasyonunu kolayca yapar. Ortak bir arayüz sağlar. Tüm jenerik olmayan sınıflarda kullanılır.

IEnumerator nedir?

Koleksiyondaki tüm öğelerin yinelenmesini uygulamak için iki yöntemi vardır. MoveNext ve Reset olmak üzere iki yöntemi vardır. MoveNext, yinelemenin koleksiyonun son öğesine ulaşmadığını gösteren bir yöntemdir.

Sıfırlama yöntemi göründüğü gibi aynı şeyi yapar. Dizinin son elemanına kadar bir önceki yineleme yapıldıktan sonra yinelemenin yeniden başlatılmasına işaret eder. Son olarak, bir nesne, yinelemenin sonucu olarak geçerli öğeyi veren Current'tır. Öğelerine belirli bir erişimi vardır. Tüm dizisine yalnızca salt okunur erişim sağlar.

IEnumerator, şu anda kullanımda olan listedeki öğeyi döndürme sorumluluğuna sahip olan geçerli özelliği çağırır. Nesnenin yinelenmesi için iki yöntem ve özellik kullanır. Her ifade dizi listesini kullanır ve ileri giderek yinelemeyi başlatır ve yöntemlerden birini kullanır. IEnumerator, IEnumerable döndüremez.

İmlecin mevcut durumunu kolayca geri alabilir. IEnumerator, somut bir yazma yöntemi kullanır. Yığının ilk öğesini yineleyerek ve yığının son öğesiyle biten yığında yinelemeye başlar.

IEnumerable ve IEnumerator Arasındaki Temel Farklar

Sonuçlar

IEnumerable, numaralandırılabilir bir sınıf tarafından uygulanan bir arabirimdir. Dizideki tüm öğelerin yinelenmesi için soyutlamayı kullanır. Tüm öğelerin yinelenmesi için kullanılan bir IEnumerator yineleyici kullanır. IEnumerator, şu anda kullanımda olan listedeki öğeyi döndürme sorumluluğuna sahip olan geçerli özelliği çağırır.

Nesnenin yinelenmesi için iki yöntem ve özellik kullanır. IEnumerable, kod çok daha küçük yazıldığından genellikle genel bir arabirim olarak bilinir. IEnumerator, somut bir yazma yöntemi kullanır. GetEnumerator, IEnumerator arabiriminin uygulanması için kullanılan bir yöntemdir.

Yineleme işlemi, koleksiyonda IEnumerable içinde geçiş yapmayı kolaylaştırır. Bir nesne olarak hareket eder. MoveNext, listenin son öğesini gösteren bir Boole değeri üreten bir yöntemdir. IEnumerable, yineleme işleminden geçtiğinde IEnumerator arabirimini döndürür.

Her ikisi de farklı yineleme yollarını izleyen yineleme işlemi için kullanılır. Yığın dizisindeki tüm öğeleri yinelemek için bir yineleyici kullanır. Biri soyutlama, diğeri somut kodlar kullandığından birbirinden farklıdır. İmlecinin durumunu geri almak ve yığının yinelemesini sürdürmek için farklı yöntemler ve özelliklere sahiptir.

IEnumerable ve IEnumerator Arasındaki Fark (Tablolu)