開発 Cのイテレータとは何ですか? -techopediaからの定義

Cのイテレータとは何ですか? -techopediaからの定義

目次:

Anonim

定義-イテレーターの意味

C#のコンテキストでのイテレータは、コレクションまたは配列の値の順序付けられたシーケンスを返すコードのブロックです。 これは、「yield」キーワードを含む1つ以上のステートメントを含むイテレーターブロックを使用して実装されるメンバー関数です。


イテレータを使用して、コレクションまたは配列を含むコンテナクラスのコンシューマが、「foreach」ステートメントを使用してより簡単な方法でコレクションを走査できるようにします。 強く型付けされたコレクションクラスで使用され、バイナリツリーのような複雑なデータ構造を反復します。これは、再帰トラバーサルを必要とし、再帰を通じて反復状態を維持します。 イテレータの概念は、LINQクエリで遅延実行を実装する際にも使用されます。

TechopediaはIteratorについて説明します

反復子は、コレクションの基礎となる構造を公開せずに、アイテムのコレクションの要素を順番に走査する方法を提供する設計パターンに基づいています。 「foreach」ステートメントをサポートするコレクションクラスを作成するときに、「IEnumerator」インターフェイスを手動で実装する面倒なタスクを排除します。 IEnumeratorインターフェイスのメソッドとプロパティを実装するために必要な中間言語コードはコンパイラーによって生成されるため、構文が単純になり、コードサイズが小さくなり、開発者の生産性が向上します。


一般に、イテレータは、コレクション内のデータ要素へのアクセスを提供するという点でデータベースカーソルに似ていますが、反復を実行しません。 イテレータは、メソッド、演算子、またはgetアクセサとしてC#で実装できます。 たとえば、イテレータを使用して文字列のコレクションを走査し、コレクション内の各文字列のコンテンツを表示できます。


イテレータはIEnumeratorインターフェイスで表され、コンパイラによって次のメソッドで実装されます。

  • MoveNext:コレクションの次の要素に進み、そのコレクションの終わりを示すメソッド
  • Current:現在ポイントされている要素の値を取得するプロパティ
  • 破棄:反復をクリーンアップします
GetEnumerator()は、IEnumerableインターフェイスのデフォルトの反復子メソッドです。 このメソッドは、コンテナクラスを含むコレクションに実装できます。 GetEnumerator()メソッドは、 "foreach"ステートメントの実行時に呼び出され、返された列挙子を使用して値を反復処理します。 「yield return」ステートメントは、コレクションの要素を取得するためにイテレータブロック内で使用されます。 また、次回の実行時にこの場所から実行が開始されるように、現在の場所を配置するのに役立ちます。 「yield break」ステートメントは、反復を終了します。 この定義はC#のコンテキストで記述されました
Cのイテレータとは何ですか? -techopediaからの定義