Even MSDN mentions the reason:
null . , Count catch InvalidOperationException, , .
, , , , , null. null ?
, , int. -1, ? , -1 , , .
Count, , :
var queue = new Queue<int>();
queue.Enqueue(-1);
while (queue.Count > 0)
{
int current = queue.Peek();
Console.WriteLine(queue.Dequeue());
}
, queue.Peek dataReader.Read. , Read bool, , . queue.Peek . , Peek, , .
, . , Enumerable.First, InvalidOperationException, .