Является ли IEnumerable. Быстрее, чем цикл for с разрывом?

У нас возникла некоторая медлительность при открытии формы в нашем коде, и, возможно, это было из-за цикла for с разрывом , выполнение которого занимало много времени. Я переключил это на IEnumerable.Any () и увидел, что форма открылась очень быстро. Сейчас я пытаюсь выяснить, повысило ли производительность только это изменение, или он более эффективно обращался к свойству ProductIDs . Должна ли эта реализация быть быстрее, и если да, то почему?

Исходная реализация:

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

Новая реализация:

public bool ContainsProduct(int productID) {
    return this.ProductIDs.Any(t => productID == t);
}
5
задан Ian R. O'Brien 26 February 2013 в 02:05
поделиться