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);
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta