Logo pl.removalsclassifieds.com

Różnica między IEnumerable i IEnumerator (z tabelą)

Spisu treści:

Anonim

IEnumerable i IEnumerator to oba interfejsy dostępne w języku C#. Pierwsza jest modułem, druga zaś przedmiotem.

IEnumerable tworzy IEnumerator. Tutaj GetEnumerator służy do pobierania IEnumeratora. Pętla Foreach służy do generowania kodu korzystającego z modułu Enumerator. Moduł wyliczający różni się od IEnumerator, ponieważ IEnumerator jest interfejsem. Enumerator to implementuje.

IEnumerable a IEnumerator

Różnica między IEnumerable i IEnumerator polega na tym, że IEnumerable działa dla interfejsu ogólnego, a IEnumerator działa dla wszystkich interfejsów innych niż ogólne. IEnumerable wskazuje na obiekt, który można wyliczyć, ale IEnumerator jest implementowany przy użyciu każdej instrukcji dla iteracji. Interfejs IEnumerable używa IEnumerator do iteracji wszystkich elementów używanych dla każdej instrukcji.

IEnumerable służy do znalezienia obiektu, który jest używany jako interfejs. Służy do iteracji wszystkich elementów w kolekcji. Proces iteracji ułatwia przechodzenie w kolekcji. Działa jak przedmiot. GetEnumerator to metoda używana do implementacji interfejsu IEnumerator.

IEnumerator ma dwie metody, Reset() i MoveNext() i ma rozszerzoną właściwość, która jest znana jako Current. MoveNext() to metoda, która generuje wartość logiczną, która wskazuje końcowy element listy. Metoda resetowania sprawia, że ​​moduł wyliczający jest jego domyślną pozycją.

Tabela porównawcza między IEnumerable i IEnumerator

Parametry porównania

IEnumerable

IEnumerator

Rodzaj interfejsu Ogólny Nieogólne
Liczba metod Jeden Dwa
Zwroty IEnumerator Nic
Stan kursora Nie można zatrzymać Może zachować
Produkt Wyliczany obiekt Dla każdego wyniku zestawienia
Sposób pisania Abstrakcyjny Beton

Co to jest IEnumerable?

Jest to interfejs implementowany przez klasę wyliczalną. Cała kolekcja w c# może zaimplementować interfejs IEnumerable. Zwraca IEnumerator. Nie zmienia się zgodnie ze specyfikatorami dostępu używanymi w kodzie. IEnumerable ma metodę znaną jako GetEnumerator. Ta implementacja jest wykonywana tylko wewnątrz klasy.

Proces iteracji ułatwia przechodzenie w kolekcji. Działa jak przedmiot. GetEnumerator to metoda używana do implementacji interfejsu IEnumerator. IEnumerable jest często znany jako interfejs generyczny, ponieważ kod jest napisany w bardzo małym rozmiarze, ponieważ wymaga tylko jednorazowej implementacji. Nie ma znaczenia, ile konstruktorów jest używanych w implementacji kodu do iteracji wszystkich elementów.

Kod wymaga niewielkiej konserwacji, ponieważ modyfikacja kodu odbywa się na jednej platformie i nie wymaga żadnych dodatkowych zmian. Używa abstrakcji do iteracji wszystkich elementów tablicy. Wykorzystuje iterator IEnumerator, który służy do iteracji wszystkich elementów. Ponieważ jest to klasa generyczna, z łatwością wykonuje iterację elementów tablicy. Zapewnia wspólny interfejs. Jest używany we wszystkich klasach nieogólnych.

Co to jest IEnumerator?

Ma dwie metody implementacji iteracji wszystkich elementów w kolekcji. Ma dwie metody, którymi są MoveNext i Reset. MoveNext to metoda, która wskazuje, że iteracja nie dotarła do ostatniego elementu kolekcji.

Metoda resetowania robi to samo, co brzmi. Wskazuje, aby ponownie rozpocząć iterację po wykonaniu poprzedniej iteracji, aż do ostatniego elementu tablicy. Ostatnim obiektem jest Current, który w wyniku iteracji podaje bieżący element. Ma określony dostęp do swoich elementów. Zapewnia tylko dostęp tylko do odczytu do całej swojej tablicy.

IEnumerator wywołuje bieżącą właściwość, która odpowiada za zwrócenie aktualnie używanego elementu z listy. Wykorzystuje dwie metody i właściwość do iteracji obiektu. Każda instrukcja korzysta z listy tablic i rozpoczyna iterację, przechodząc do przodu i używając jednej z metod. IEnumerator nie może zwrócić IEnumerable.

Może łatwo przywrócić aktualny stan kursora. IEnumerator używa konkretnego sposobu pisania. Rozpoczyna iterację na stosie, iterując pierwszy element stosu i kończąc na ostatnim elemencie stosu.

Główne różnice między IEnumerable a IEnumerator

Wnioski

IEnumerable to interfejs implementowany przez klasę wyliczalną. Używa abstrakcji do iteracji wszystkich elementów tablicy. Wykorzystuje iterator IEnumerator, który służy do iteracji wszystkich elementów. IEnumerator wywołuje bieżącą właściwość, która odpowiada za zwrócenie aktualnie używanego elementu z listy.

Wykorzystuje dwie metody i właściwość do iteracji obiektu. IEnumerable jest często znany jako interfejs generyczny, ponieważ kod jest napisany w bardzo małym rozmiarze. IEnumerator używa konkretnego sposobu pisania. GetEnumerator to metoda używana do implementacji interfejsu IEnumerator.

Proces iteracji ułatwia przechodzenie w kolekcji w IEnumerable. Działa jak przedmiot. MoveNext to metoda, która generuje wartość logiczną, która wskazuje końcowy element listy. IEnumerable zwraca interfejs IEnumerator, gdy przechodzi proces iteracji.

Oba są używane w procesie iteracji, który przebiega według różnych sposobów iteracji. Używa iteratora do iteracji wszystkich elementów tablicy stosu. Różni się od siebie tym, że jeden posługuje się abstrakcją, a drugi konkretnymi kodami. Ma różne metody i właściwości, aby odzyskać stan kursora i utrzymać iterację stosu.

Różnica między IEnumerable i IEnumerator (z tabelą)