IEnumerable と IEnumerator: 違いと比較

IEnumerable と IEnumerator はどちらも C# で使用できるインターフェイスです。 前者はモジュールですが、後者はオブジェクトです。 

IEnumerable は IEnumerator を生成します。 ここでは、GetEnumerator を使用して IEnumerator を取得し、各ループを使用して Enumerator を使用するコードを生成します。 IEnumerator はインターフェイスであるため、列挙子は IEnumerator とは異なります。 列挙子はそれを実装します。

主要な取り組み

  1. IEnumerable はオブジェクトのコレクションの反復処理を可能にするインターフェイスであり、IEnumerator は IEnumerator インターフェイスを実装し、コレクションを走査するためのメソッドを提供するクラスです。
  2. IEnumerable は、IEnumerator オブジェクトを返す単一のメソッド (GetEnumerator) を提供しますが、IEnumerator は、コレクション内を移動するためのメソッド (MoveNext) と現在のオブジェクトを取得するためのメソッド (Current) を提供します。
  3. IEnumerable は反復可能なコレクションを作成するために使用され、IEnumerator はそれらのコレクションをトラバースするために使用されます。

IEnumerable と IEnumerator

IEnumerable と IEnumerator の違いは、IEnumerable は汎用インターフェイスに対して機能し、IEnumerator はすべての非汎用インターフェイスに対して機能することです。 IEnumerable は列挙可能なオブジェクトを指しますが、IEnumerator は反復の各ステートメントを使用して実装されます。 IEnumerable インターフェイスは、各ステートメントに使用されるすべての要素の反復に IEnumerator を使用します。

IEnumerable と IEnumerator

IEnumerable は、インターフェイスとして使用されるオブジェクトを見つけるために使用されます。 コレクション内のすべての要素の反復に使用されます。

反復プロセスにより、コレクション内のトラバースが容易になります。 それはオブジェクトとして機能します。 GetEnumerator は、IEnumerator インターフェイスの実装に使用されるメソッドです。

IEnumerator には、Reset() と MoveNext() の XNUMX つのメソッドがあり、Current と呼ばれる拡張プロパティがあります。 MoveNext() は、リストの最後の要素を指すブール値を生成するメソッドです。 reset メソッドは、列挙子をデフォルトの位置にします。

比較表

比較のパラメータIEnumerableI列挙子
インターフェイスのタイプジェネリック非ジェネリック
メソッド数1ツー
返品I列挙子なし
カーソル状態保持できません維持できる
プロダクト列挙型オブジェクト各ステートメントの結果について
書き方抽象具体的な

IEnumerable とは何ですか?

これは、列挙可能なクラスによって実装されるインターフェイスです。 コレクション全体 c# IEnumerable インターフェイスを実装できます。 IEnumerator を返します。 コードで使用されているアクセス指定子によっては変更されません。

また読む:  Spotify と Tidal: 違いと比較

IEnumerable には、GetEnumerator と呼ばれるメソッドがあります。 この実装は、クラス内でのみ行われます。

反復プロセスにより、コレクション内のトラバースが容易になります。 それはオブジェクトとして機能します。 GetEnumerator は、IEnumerator インターフェイスの実装に使用されるメソッドです。

IEnumerable は、実装が 1 回だけ必要なため、コードが非常に小さく記述されるため、汎用インターフェイスとして知られています。そうではありません 問題 すべての要素を反復するためにコード実装で使用されるコンストラクターの数。

コードへの変更は XNUMX つのプラットフォームで行われ、追加の変更が必要ないため、コードのメンテナンスの手間がかかりません。 それは使用しています 抽象化 配列内のすべての要素の反復。

すべての要素の反復に使用される IEnumerator イテレータを使用します。 これはジェネリック クラスであるため、配列内の要素の反復を簡単に実行できます。 共通のインターフェイスを提供します。 これはすべての非ジェネリック クラスで使用されます。

IEnumerator とは

コレクション内のすべての要素の反復を実装する XNUMX つの方法があります。 MoveNext と Reset の XNUMX つのメソッドがあります。 MoveNext は、繰り返しがコレクションの最後の要素に達していないことを指摘するメソッドです。

 reset メソッドは、見た目と同じことを行います。 配列の最後の要素まで前の反復が行われた後、反復を再度開始することを示しています。

最後に、XNUMX つのオブジェクトが Current で、反復の結果として現在の要素が得られます。 その要素への特定のアクセス権があります。 すべての配列への読み取り専用アクセスのみを提供します。

また読む:  Teamviewer と VNC: 違いと比較

IEnumerator は、現在使用されているリスト内の要素を返す役割を持つ現在のプロパティを呼び出します。 オブジェクトの反復に XNUMX つのメソッドとプロパティを使用します。

各ステートメントは配列リストを使用し、前方に進むことで反復を開始し、いずれかのメソッドを使用します。 IEnumerator は IEnumerable を返すことができません。

カーソルの現在の状態を簡単に取得できます。 IEnumerator は、具体的な書き方を使用します。 で反復を開始します スタック スタックの最初の要素を反復し、スタックの最後の要素で終了します。

IEnumerable と IEnumerator の主な違い

  1. IEnumerable は汎用インターフェイスに使用されますが、IEnumerator は非汎用インターフェイスに使用されます。
  2. IEnumerable には XNUMX つのメソッドしかありませんが、IEnumerator には XNUMX つのメソッドしかありません。
  3. IEnumerable は IEnumerator を返すことができますが、IEnumerator は IEnumerable を返すことはできません。
  4. IEnumerable はカーソルの現在の状態を保持できませんが、IEnumerator はカーソルの現在の状態を保持できます。
  5. IEnumerable は列挙されたオブジェクトを示しますが、IEnumerator はステートメントごとに XNUMX つずつ持ちます。
  6. IEnumerable は抽象的な記述方法ですが、IEnumerator は具体的な記述を使用します。
参考文献
  1. https://ieeexplore.ieee.org/abstract/document/7883396/

最終更新日 : 25 年 2023 月 XNUMX 日

ドット1
XNUMXつのリクエスト?

私はあなたに価値を提供するために、このブログ記事を書くことに多大な努力を払ってきました. ソーシャルメディアや友人/家族と共有することを検討していただければ、私にとって非常に役立ちます. 共有は♥️

「IEnumerable と IEnumerator: 違いと比較」についての 22 件のフィードバック

  1. IEnumerable と IEnumerator の徹底的な比較を提供していただきありがとうございます。明確かつ簡潔なので、2 つのインターフェイスの違いを簡単に把握できます。

    返信
    • この投稿は非常に洞察力があり、よく説明されていると思いました。 IEnumerable と IEnumerator の比較は非常に役立ちます。

      返信
  2. この投稿は、IEnumerable と IEnumerator の違いを理解するための貴重なリソースです。内訳は徹底的かつ洞察に富んでいるため、両方のインターフェイスの機能を理解しやすくなっています。

    返信
    • IEnumerable と IEnumerator の比較は非常に詳しく説明されており、相違点の内訳は非常に役立ちます。

      返信
    • この投稿では IEnumerable と IEnumerator をうまく比較しており、開発者にとって優れた参考資料となっています。

      返信
  3. C# で IEnumerable と IEnumerator がどのように機能するかについての説明は素晴らしいです。これらのインターフェイスの比較とコントラストを見るのは素晴らしいことです。

    返信
    • IEnumerable と IEnumerator のさまざまなプロパティとメソッドを概説した方法は、開発者にとって非常に役立ちます。

      返信
  4. IEnumerable と IEnumerator の詳細な説明は非常に有益で、よく整理されています。これは開発者にとって貴重なリソースです。

    返信
  5. この有益な投稿をありがとうございます。 IEnumerable と IEnumerator の説明は非常に明確で、2 つのインターフェイスの違いを理解しやすくなります。

    返信
    • この投稿の IEnumerable と IEnumerator の内訳は詳細かつ明確であり、開発者にとって優れたリソースとなっています。

      返信
    • IEnumerable と IEnumerator の比較が非常に役立つことがわかりました。 2 つのインターフェイスを明確に理解できます。

      返信
  6. この投稿では、IEnumerable と IEnumerator の非常に徹底的で洞察力に富んだ比較を提供しました。これは、2 つのインターフェイスの違いを理解しようとしている開発者にとって非常に参考になります。

    返信
  7. IEnumerable と IEnumerator の内訳は、特に C# を学習している人にとって非常に役立ちます。丁寧に説明されていて参考になりました!

    返信
  8. これは、IEnumerable と IEnumerator に関する非常に有益な投稿です。比較表を使用すると、2 つのインターフェイスの主な違いを簡単に理解できます。

    返信
    • 私はこれ以上同意できませんでした。比較表は、IEnumerable と IEnumerator のニュアンスを理解するための優れた参考資料です。

      返信
  9. IEnumerable と IEnumerator の違いについて詳しく説明していただきありがとうございます。比較が明確でありがたいです。

    返信
  10. IEnumerable と IEnumerator の内訳は非常に優れており、主な違いを包括的にカバーしており、両方のインターフェイスの機能を理解するのに役立ちます。

    返信
    • 私はこれ以上同意できませんでした。この投稿では、IEnumerable と IEnumerator について明確に理解できます。

      返信

コメント

後で読むためにこの記事を保存しますか? 右下のハートをクリックして自分の記事ボックスに保存!