【C#】【Unity】forとforeachの速度の差
teratailの質問の一部であったので、気になりました。
C# memory and performance tips for Unity | somasim games
によると、foreachの方が遅いとのこと。
理由としては、enumeratorが内部的に生成されることによるオーバーヘッドだそうです。
コードを引用すると、
foreach (var element in collection) { ... }
は
var enumerator = collection.GetEnumerator();
while (enumerator.MoveNext()) {
var element = enumerator.Current;
// the body of the foreach loop
}
に変換されるそうです。
うーん、foreachの方がクールな感じなんですけどね。気をつけよう。