results
sama jest tylko kwerendą. Dopóki nie rozpoczniesz iteracji (jawnie lub przez wywołanie takie jak Count()
), nic nie sprawdziło, czy są jakieś wyniki, czy nie. Dopiero gdy ją wyliczysz, wszystko się wydarzy.
Więc można zrobić:
foreach (int x in results)
{
Console.WriteLine("This won't happen");
}
Lub:
Console.WriteLine(results.Any()); // Will print false
Console.WriteLine(results.Count()); // Will print 0
Każda z nich spowoduje, że orzeczenie należy określać na każdej pozycji w zakresie ... ale przedtem, to wygrał w ogóle nie można go nazwać.
Jest rzeczą ważną, aby zrozumieć, ponieważ oznacza to, że results
nie może być null
zachowując funkcję oceny leniwe - dopóki nie próbował użytkuresults
, że nie będzie pracował, czy to powinien być null
lub nie!
W "wynikach" znajduje się * obiekt reprezentujący zapytanie *. Pamiętaj: obiekt zapytania NIE jest wynikiem zapytania. Obiekt zapytania to coś, co możesz * iterować, aby uzyskać wyniki zapytania *, to nie jest sam wynik. –