Иногда я ожидаю определенного диапазона элементов и мне нужно сделать некоторую проверку, чтобы убедиться, что я нахожусь в этом диапазоне. Самый очевидный способ сделать это - просто сравнить количество элементов в коллекции с диапазоном.
public static bool IsWithinRange<T>(this IEnumerable<T> enumerable, int max)
{
return enumerable.Count() <= max;
}
Хотя, насколько я понимаю, метод linq Count () будет оценивать все перечислимое перед возвратом результата. В идеале я бы вызвал оценку только по минимальному количеству элементов, чтобы получить свой результат.
Что было бы наилучшим способом гарантировать, что перечислимое число имеет меньше определенного количества элементов, не вызывая ненужных вычислений?