C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のイテレータ


イテレータは、コレクションに対してカスタム反復を実行します。これは、yield returnステートメントを使用して、各要素を一度に1つずつ返します。イテレータは現在の場所を記憶し、次の反復で次の要素が返されます。

以下は例です-

using System;
using System.Collections.Generic;
using System.Linq;

namespace Demo {
   class Program {
      public static IEnumerable<string> display() {
         int[] arr = new int[] {99,45,76};

         foreach (var val in arr) {
            yield return val.ToString();
         }
      }

      public static void Main(string[] args) {
         IEnumerable<string> ele = display();
         foreach (var element in ele) {
            Console.WriteLine(element);
         }
      }
   }
}

出力

99
45
76

上記には、yieldステートメントを使用して一度に1つの要素を返すイテレータメソッドdisplay()があります-

public static IEnumerable<string> display() {
   int[] arr = new int[] {99,45,76};

   foreach (var val in arr) {
      yield return val.ToString();
   }
}

結果が保存され、各要素が繰り返されて印刷されます-

IEnumerable<string> ele = display();
foreach (var element in ele) {
   Console.WriteLine(element);
}

  1. ジェネレーターを使用してPythonでイテレーターを作成できますか?

    はい 、Pythonでイテレータを使用してジェネレータを作成できますイテレータの作成は簡単です。キーワードyieldステートメントを使用してジェネレータを作成できます。 Pythonジェネレーターは、イテレーターを作成するための簡単でシンプルな方法です。主にイテレータのように動作する関数を宣言するために使用されます。 ジェネレーターは、おそらく日常生活の中で一度に1つの値を反復処理できる関数であり、すべてのプログラマーはリスト、文字列、Dictなどの反復可能なオブジェクトを使用します。 イテレータは、ループを介して反復できるオブジェクトです。 次の例は、ジェネレーターがPythonで

  2. 効率的なループのためのイテレータを作成するPython関数

    ほとんどのプログラミング言語と同様に、Pythonはwhileステートメントとforステートメントを提供してループ構造を形成します。 forステートメントは、リスト、タプル、文字列などの反復可能オブジェクトをトラバースする場合に特に役立ちます。より効率的で高速な反復ツールは、Pythonの標準ライブラリのitertoolsモジュールで定義されています。これらのイテレータビルディングブロックは、HaskellやSMLなどの関数型プログラミング言語での同様のツールのPythonic実装です。 itertoolsモジュールの関数には3つのタイプがあります。 無限イテレータ 有限イテレータ 組み合