IEnumerable dan IEnumerator ( Teknologi) perbedaan, apa itu

Sebelum kita membahas perbedaan antara IEnumerable dan IEnumerator, pertama-tama mari kita pahami istilah Enumerator dan Enumerable serta kapan dan mengapa menggunakannya. Enumerable merupakan modul yang digunakan dalam kelas Array yang memberi Anda Enumerator.

Kelas itu sendiri tidak memiliki setiap metode.

Faktanya, ini menggunakan metode yang disebut ‘GetEnumerator’ yang memberi Anda Enumerator untuk mengambil itemnya. Enumerator adalah objek yang mengembalikan setiap item dalam koleksi dalam urutan tertentu, persis seperti yang diminta.

Compiler menghasilkan kode yang menggunakan Enumerator, saat Anda menulis foreach loop di C#.

IEnumerator adalah antarmuka yang diimplementasikan oleh enumerator dan kelas enumerable mengimplementasikan antarmuka IEnumerable.  

Apa yang dimaksud dengan Ienumerable?

IEnumerable adalah antarmuka dasar yang digunakan untuk mendapatkan objek yang mengetahui cara menghitung (atau mengulangi) elemen dalam koleksi.

Ini adalah implementasi dari pola iterator yang menyediakan mekanisme untuk melintasi objek dalam koleksi terlepas dari struktur internalnya.

Antarmuka IEnumerable mewakili objek yang dapat diulang dalam koleksi. Ini hanya menggunakan satu metode “GetEnumerator” yang mengembalikan instance kelas enumerator yang mengimplementasikan antarmuka IEnumerator.

 

Apa yang dimaksud dengan Enumerator?

Antarmuka IEnumerator, di sisi lain, mendeklarasikan dua metode – Reset ( ) dan MoveNext ( ) – dan satu properti, Current. MoveNext ( ) mengembalikan nilai Boolean yang menunjukkan akhir dari daftar dan membantu memposisikan elemen pertama dalam daftar setelah memanggil metode Reset ( ) – metode ini mengatur enumerator ke posisi default sehingga mengulangi daftar dari awal.

Properti Current hanya dapat dipanggil melalui instance antarmuka IEnumerator dan mengembalikan elemen saat ini dalam daftar.

 

Perbedaan antara IEnumerable dan IEnumerator

Dasar-dasar IEnumerable dan Ienumerator

Baik IEnumerable dan IEnumerator adalah antarmuka yang mengimplementasikan pola desain perangkat lunak iterator dalam.Net Framework secara bersamaan..Net Framework membuat pengaksesan elemen individual dalam koleksi kustom sambil mengimplementasikan antarmuka IEnumerable dan IEnumerator.

Antarmuka IEnumerable hanya mendeklarasikan satu metode yang disebut GetEnumerator yang mengembalikan tipe antarmuka lain yang disebut antarmuka IEnumerator untuk koleksi tertentu itu.

IEnumerator, di sisi lain, adalah antarmuka dasar untuk semua pencacah non-generik yang digunakan untuk membaca data dalam kumpulan. Namun, pencacah tidak dapat digunakan untuk mengubah koleksi yang mendasarinya.

Metode

Antarmuka IEnumerable hanya mendefinisikan satu metode GetEnumerator ( ) yang merupakan metode instan yang digunakan pada beberapa jenis koleksi yang berbeda.

Itu mendapat iterator IEnumerator yang dapat digunakan untuk mengulang semua nilai dari koleksi.

Saat Anda menulis foreach loop di C# kode yang dihasilkannya memanggil metode GetEnumerator untuk membuat Enumerator yang digunakan oleh loop. IEnumerator, di sisi lain, menggunakan dua metode MoveNext ( ) dan Reset ( ) dan properti Current.

Metode MoveNext ( ) membawa enumerator ke elemen koleksi berikutnya, sedangkan metode Reset ( ) mengatur enumerator ke posisi defaultnya yaitu sebelum elemen pertama dalam koleksi.

Penerapan

IEnumerable adalah antarmuka generik yang menyediakan abstraksi untuk mengulang elemen dan dengan mengimplementasikan antarmuka IEnumerable, kelas generik pada dasarnya memungkinkan iterasi melalui antarmuka IEnumerator. Dengan demikian, kelas-kelas ini pada akhirnya menyediakan antarmuka umum untuk mengambil instance dari objek IEnumerator <T> yang mendukung semua set dasar metode navigasi.

IEnumerator adalah antarmuka dasar untuk pencacah dan penggunaan antarmuka IEnumerable mengharuskan kelas harus mengimplementasikan IEnumerator.

Kedua interface perlu diimplementasikan, jika Anda ingin memberikan dukungan untuk foreach. Kelas abstrak ‘AbstractEnumerator’ mengimplementasikan antarmuka IEnumerator.

Fungsi IEnumerable dan IEnumerator

Antarmuka IEnumerable, bersama dengan antarmuka IEnumerator yang mendukung, memungkinkan Anda untuk mengulang elemen dalam tumpukan menggunakan pernyataan ‘foreach’.

Ini adalah antarmuka dasar yang digunakan untuk objek tipe koleksi.

Iterasi dimulai dengan elemen teratas di tumpukan dan diakhiri dengan elemen tertua di tumpukan. Sederhananya, ini mewakili objek yang dapat dihitung.

Bersama-sama dengan antarmuka IEnumerator, mereka memungkinkan elemen ArrayList untuk diulangi secara standar, berurutan, dimulai dengan elemen pertama dan seterusnya.

Pernyataan foreach menggunakan metode dan properti antarmuka IEnumerator untuk mengulang semua elemen dalam koleksi.

IEnumerable vs. IEnumerator: Bagan Perbandingan

&nbsp.

Ringkasan IEnumerable ayat IEnumerator

Singkatnya, baik IEnumerable dan IEnumerator adalah antarmuka yang digunakan untuk menghitung atau mengulangi kelas yang memiliki sifat koleksi yang berarti mereka memfasilitasi akses berulang dalam koleksi khusus. IEnumerable adalah antarmuka generik yang tersedia untuk objek tipe koleksi dan dengan mengimplementasikan antarmuka IEnumerable, kelas generik pada dasarnya memungkinkan iterasi melalui antarmuka IEnumerator.

Ini hanya menggunakan satu metode GetEnumerator yang mengembalikan instance kelas enumerator yang mengimplementasikan antarmuka IEnumerator.

Antarmuka IEnumerator dimaksudkan untuk digunakan sebagai pengakses dan tidak dapat digunakan untuk memodifikasi koleksi yang mendasarinya.

Ini menyediakan dua metode abstrak Reset ( ) dan MoveNext ( ), dan properti Current untuk memanggil elemen tertentu dalam koleksi.

Related Posts