(CheckBox)lstControls.Where(x => x.ID == "some_id").SingleOrDefault();
This should check every item in the listing.
(CheckBox)lstControls.SingleOrDefault(x => x.ID == "some_id");
This can stop testing the elements and return as soon as it finds something.
If you have a very large enumeration, and an element near the front satisfies the condition, then the first can be much faster. In the case when the number of elements satisfying the condition increases with the size of the enumeration, the acceleration can be asymptotic. For example, if one of every k elements satisfies the condition on average, then the average execution time of the second fragment is constant.
source share