Es IEnumerable, algo más rápido que un bucle for con un descanso?
Experimentamos cierta lentitud en nuestro código al abrir un formulario y posiblemente se debió a unfor
loop con unabreak
que estaba tardando mucho en ejecutarse. Cambié esto a unaIEnumerable.Any()
y vi el formulario abrirse muy rápidamente. Ahora estoy tratando de averiguar si hacer este cambio solo aumentó el rendimiento o si estaba accediendo a laProductIDs
propiedad de manera más eficiente. ¿Debería esta implementación ser más rápida y, de ser así, por qué?
Implementación original:
public bool ContainsProduct(int productID) {
bool containsProduct = false;
for (int i = 0; i < this.ProductIDs.Length; i++) {
if (productID == this.ProductIDs[i]) {
containsProduct = true;
break;
}
}
return containsProduct;
}
Nueva implementación:
public bool ContainsProduct(int productID) {
return this.ProductIDs.Any(t => productID == t);
}