我最近一直在使用 LINQ,感谢一些 StackOverflowers 的帮助,我能够让这个语句起作用:
var traceJob =
from jobDefinition in service.JobDefinitions
where jobDefinition.Id == traceGuid
select jobDefinition;
if (traceJob != null && traceJob.Count() == 1)
{
traceJob.First().RunNow();
Console.WriteLine(traceJob.First().DisplayName + " Last Run Time: " + traceJob.First().LastRunTime);
}
但是,我很困惑,因为使它起作用的部分是if(traceJob.Count() ==1)
. 如果我删除该部分,那么我会收到一条ObjectNullRef
错误消息,指出枚举traceJob
没有产生任何结果。
现在,据我所知,if
检查计数的语句实际上不应该改变 Linq 语句的结果,对吧?谁能向我解释为什么我会看到这种行为?