Вопрос: задано IEnumerable<>
, как проверить, какая последовательность содержит больше, чем x
элементов?
MCVE:
static void Main(string[] args)
{
var test = Test().Where(o => o > 2 && o < 6); // ToList()
if (test.Count() > 1) // how to optimize this?
foreach (var t in test) // consumer
Console.WriteLine(t);
}
static IEnumerable<int> Test()
{
for (int i = 0; i < 10; i++)
yield return i;
}
Проблема в том, что Count()
выполнит полную последовательность и что 1E6
+ items (ToList()
тоже плохая идея). Мне также не разрешено изменять потребительский код (это метод, принимающий полную последовательность).