Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А про мощность: спорно. Важно только для мобильных устройств и сейчас они постепенно учатся отключать ядра при малой нагрузке. Так что большое количество слабых ядер по требованию оказывается выгоднее одного мощного ядра постоянно.
IEnumerable (так что там и список-то лишний).for и foreach — проблемы всегда были на стороне на порядок более медленных компонентов системы.foreach на for без потери поведения, то это прекрасно сделает оптимизирующий компилятор (и часто он это сделает лучше программиста).ArrayForWithoutOptimization : 143ms
ArrayForWithOptimization : 143ms
ArrayForeach : 142ms
ArrayForEach : 556ms
ListForWithoutOptimization : 280ms
ListForWithOptimization : 213ms
ListForeach : 628ms
ListForEach : 833ms
ArrayForWithoutOptimization : 111ms
ArrayForWithOptimization : 110ms
ArrayForeach : 110ms
ArrayForEach : 625ms
ListForWithoutOptimization : 106ms
ListForWithOptimization : 106ms
ListForeach : 375ms
ListForEach : 451ms
[Serializable]
internal class GenericEqualityComparer<t>: EqualityComparer<t> where T: IEquatable<t>
{
[Pure]
public override bool Equals(T x, T y) {
if (x != null) {
if (y != null) return x.Equals(y);
return false;
}
if (y != null) return false;
return true;
}
}
foreach or for that is the question