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); }
-
ジェネレーターを使用してPythonでイテレーターを作成できますか?
はい 、Pythonでイテレータを使用してジェネレータを作成できますイテレータの作成は簡単です。キーワードyieldステートメントを使用してジェネレータを作成できます。 Pythonジェネレーターは、イテレーターを作成するための簡単でシンプルな方法です。主にイテレータのように動作する関数を宣言するために使用されます。 ジェネレーターは、おそらく日常生活の中で一度に1つの値を反復処理できる関数であり、すべてのプログラマーはリスト、文字列、Dictなどの反復可能なオブジェクトを使用します。 イテレータは、ループを介して反復できるオブジェクトです。 次の例は、ジェネレーターがPythonで
-
効率的なループのためのイテレータを作成するPython関数
ほとんどのプログラミング言語と同様に、Pythonはwhileステートメントとforステートメントを提供してループ構造を形成します。 forステートメントは、リスト、タプル、文字列などの反復可能オブジェクトをトラバースする場合に特に役立ちます。より効率的で高速な反復ツールは、Pythonの標準ライブラリのitertoolsモジュールで定義されています。これらのイテレータビルディングブロックは、HaskellやSMLなどの関数型プログラミング言語での同様のツールのPythonic実装です。 itertoolsモジュールの関数には3つのタイプがあります。 無限イテレータ 有限イテレータ 組み合