我有一个问题 - 如果.Count()
返回true,为什么我会在此IEnumerable的.Any()
方法中获得空引用异常?
Logger.Normal("{0}", targetWorkflow.GetStages().Any() ? "any is true!" : "any is false");
Logger.Normal("{0}", targetWorkflow.GetStages().Count());
错误:
StackTrace = [ at Sth.Workflow.<GetStages>d__13.MoveNext()XX at System.Linq.Enumerable.Count[TSource]
老实说,如果Count()
为真,我希望.Any()
方法至少返回1,而如果Any()
为假,它会返回0?
请告诉我错误的地方。
另外 - 请注意,我并非尝试解决实际问题,我想了解为什么Any() == true
无法确保收藏品健康且“可数”。
答案 0 :(得分:7)
GetStages()
似乎在其自己的代码内部抛出异常。 Any
可以在获得第一个项目后立即停止,这就是为什么它不会抛出任何异常,但Count
需要迭代整个序列才能获得结果。
GetStages()
方法内部存在一些错误(或者某些违反了您正在使用的用途)与您所显示的代码无关。