for ループと foreach の違い
foreach は IEnumerable に依存します。
GetList() の var a が初めて呼び出されるとき、GetEnumerator が呼び出されて最初のオブジェクトが返され、a に割り当てられます。
GetList() の var a を実行します。 ) その後、MoveNext が呼び出されるたびに、
期間中、GetList() メソッドは List[3] と同等になります。 (list + 3).
foreach (var a in GetList()) { ... } = var a; IEnumerator e = GetList().GetEnumerator(); while (e.MoveNext) { a = e.Current; }
for ループは毎回、ループは長さを比較するために GetCount() を呼び出します。そして、foreach は長さを考慮せず、GetList() を 1 回だけ呼び出します。
結論。
長さが固定されている場合、または長さを計算する必要がない場合、for ループは foreach よりも効率的です。
そうでない場合、長さを決定する場合、または長さを計算するとパフォーマンスが低下する場合は、foreach を使用する方が便利です。
そして、コレクション内のオブジェクトは foreach 中にロックされ、その間は変更できません。
以上がfor ループと foreach の違いについて詳しく見るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。