ホームページ  >  記事  >  バックエンド開発  >  for ループと foreach の違いについて詳しく見る

for ループと foreach の違いについて詳しく見る

迷茫
迷茫オリジナル
2017-03-26 10:37:151508ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。