ホームページ > バックエンド開発 > C++ > 「yield」キーワードを使用すると、C# でのイテレータの作成がどのように簡素化されますか?

「yield」キーワードを使用すると、C# でのイテレータの作成がどのように簡素化されますか?

Mary-Kate Olsen
リリース: 2025-01-27 17:51:10
オリジナル
689 人が閲覧しました

How Does the `yield` Keyword Simplify Iterator Creation in C#?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート