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