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つのタイプがあります。 無限イテレータ 有限イテレータ 組み合