C# の foreach コード例
foreach は一部のデータ型を走査できます。図からわかるように、トラバースされるデータ型にはパブリック メソッド GetEnumerator が必要です。
foreach トラバーサルを使用する場合、var 推論タイプが関係します。現時点でジェネリック バージョンが実装されていない場合は、常にオブジェクト タイプになります。
foreach トラバーサルはデータを読み取ることのみできますが、データを変更することはできません。文字列を介して検出できますが、それを構成する文字は変更できません。 (このシナリオのみ)。
foreach は、データベースを操作する DataReader の Read メソッドと同様に、前方へのみトラバースして 1 つずつ読み取ります。
上記の分析から、IEnumerator メソッドをトラバースするにはクラス内で定義する必要があることがわかります。ここには 2 つの解決策があります。
メソッド 1、yield
yield 戻り式を介して、戻り値が IEnumerable
戻り値が IEnumerator
これを使用して、トラバース時に上の図の person 配列の値を取得できます。
方法 2 IEnumerable インターフェイスを実装することで、
IEunmerable に GetEunmetator メソッドが含まれ、戻り値は IEnumerator の型になります。
現時点では、目的を達成するためにそのサブクラスを返すことができるように、IEnumerator インターフェイスを継承する別のクラスが必要です。
実装プロセス:
1. インデックスの位置をマークするために、int 型の変数を追加する必要があります。ここでは int Position=-1 を使用します。
2. 渡された配列を受け取るために、対応する配列変数を追加します。ここで string[] persion;
3 を使用して実装された Curren 属性は、現在のインデックスのデータを返す必要があります。 return person[position];
4. MoveNextメソッドを実装するには、ポインタ(インデックス)に1を加算して前に進む必要があります。戻り値は、インデックスが操作されたかどうかを判断するために使用されます。 。
5. リセット メソッドである Reset メソッドを実装し、位置を -1 に割り当てます。
6. 渡されたデータを受け取るコンストラクターを追加します。
3. リスト コレクションの分析
リフレクション ツールを通じて、List コレクションの Add メソッドが内部項目に値を追加することであり、この項目が配列であることがわかります。ジェネリックなのでTと表示されます。
つまり、上記の自己定義配列と同様に、追加されたデータを格納するための変数がコレクション内に存在します。このように、List コレクション クラスは上記の
カスタム クラスと一致するだけです。プロセスをデモするために、もちろんビジネス ニーズに応じて、静的データの Add メソッドへの変更、データ ロジックのフィルタリングなど、上記のクラスを自分で実装および拡張できます。これらはすべて、ビジネス ニーズに応じて拡張できます。
以上がC# の foreach コード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、CのNull Poernter recerferenceの課題を調査します。問題は、問題はnullではなく、その誤用であると主張しています。 記事では、参照前のチェック、ポインターInitialiなど、非参照を防止するためのベストプラクティスの詳細

この記事では、printf内の\ nエスケープシーケンスを使用してcで新しいライン文字を作成し、関数を置く方法について説明します。 機能を詳しく説明し、出力のラインブレークに使用することを示すコード例を提供します。

この記事は、Cコンパイラの選択に関する初心者を案内しています。 GCCは、使いやすさ、幅広い可用性、広範なリソースが初心者に最適であるため、最適であると主張しています。 ただし、GCC、Clang、MSVC、およびTCCも比較して、その違いを強調しています

この記事では、現代のCプログラミングにおけるNullの継続的な重要性を強調しています。 進歩にもかかわらず、Nullは明示的なポインター管理にとって重要なままであり、有効なメモリアドレスがないことをマークすることにより、セグメンテーションの障害を防ぎます。 最高のPRAC

この記事では、初心者向けのオンラインCコンパイラをレビューし、使いやすさとデバッグ機能に焦点を当てています。 OnlineGDBとRepl.itは、ユーザーフレンドリーなインターフェイスと役立つデバッグツールのために強調表示されます。 プログラムやコンパイルなどのその他のオプション

この記事では、オンラインCプログラミングプラットフォームを比較し、デバッグツール、IDE機能、標準コンプライアンス、メモリ/実行の制限などの機能の違いを強調しています。 「最良の」プラットフォームはユーザーのニーズに依存していると主張しています。

この記事では、C IDEでの効率的なコードコピーについて説明します。 コピーはコンパイラ機能ではなくIDE機能であり、IDE選択ツールの使用、コード折りたたみ、検索/交換、テンプラなど、効率を向上させるための詳細戦略であることを強調しています。

この記事では、Cプログラムのコンパイルでの出力Windowsの欠落をトラブルシューティングします。 実行可能ファイルの実行に失敗し、プログラムエラー、誤ったコンパイラ設定、バックグラウンドプロセス、迅速なプログラム終了などの原因を調べます。ソリューションにはchが含まれます
