IEnumerable.Any mais rápido que um loop for com uma pausa?

Tivemos alguma lentidão no nosso código ao abrir um formulário e possivelmente foi devido a umfor loop com umbreak que estava demorando muito para ser executado. Troquei isso para umIEnumerable.Any() e vi o formulário abrir muito rapidamente. Agora estou tentando descobrir se fazer essa alteração sozinha aumentou o desempenho ou se estava acessando oProductIDs propriedade com mais eficiência. Essa implementação deve ser mais rápida e, em caso afirmativo, por quê?

Implementação 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;
}

Nova implementação:

public bool ContainsProduct(int productID) {
    return this.ProductIDs.Any(t => productID == t);
}