C# の yield
キーワード: イテレータ作成の簡素化
C# の yield
キーワードを使用すると、イテレータの作成が大幅に簡素化されます。 イテレータは、シーケンス全体を一度にメモリに格納する必要なく、値のシーケンスを提供します。この「遅延評価」により、特に大規模なデータセットを扱う場合の効率が向上します。
yield
キーワードは、標準ループを反復子メソッドに変換します。 このメソッドは、IEnumerable<T>
インターフェイスを実装するオブジェクトを返します (T
はシーケンス内の要素のタイプです)。 呼び出し元が foreach
ループを使用して反復すると、反復メソッドが実行され、yield
のおかげで反復ごとに一時停止および再開されます。
これにより、イテレータの実装に通常伴う手動の簿記が不要になり、コードがよりクリーンで保守しやすくなります。
次の例を考えてみましょう:
<code class="language-csharp">public IEnumerable<object> FilteredList() { foreach(object item in FullList) { if(IsItemInPartialList(item)) yield return item; } }</code>
FilteredList
は、フィルタリングされた FullList
のサブセットを返します。 yield return
ステートメントは、一致する項目が見つかるたびに実行を一時停止し、その項目を呼び出し元に返します。 次の項目が要求されるとイテレーターが再開されます。
yield
は、クエリからのシーケンスの生成、ファイルまたはデータベースからのデータの遅延読み取り、固有のデータ構造のカスタム イテレータの作成など、さまざまな状況で非常に役立ちます。 C# 2.0 での導入により、イテレーター開発の容易さと効率が大幅に向上しました。
以上が「yield」キーワードを使用すると、C# でのイテレータの作成がどのように簡素化されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。