使用linq时,在.ForEach()之前调用.Any()有什么好处吗?

dot*_*oob 4 .net c# linq

我有很多方法,如下所示:

    void ValidateBuyerRules()
    {
        var nodesWithRules = ActiveNodes.Where(x => x.RuleClass.IsNotNullOrEmpty());

        **if (!nodesWithRules.Any()) return;**

        foreach (var ruleClass in nodesWithRules)
        {
            // Do something here
        }
    }
Run Code Online (Sandbox Code Playgroud)

如您所见,我检查nodesWithRules是否有任何项并在执行foreach语句之前退出方法,但这是不必要的代码吗?

Cla*_*edi 13

除非你foreach想要避免的陈述之后有一些逻辑,否则这是不必要的,因为它将起作用.

foreach迭代nodesWithRules检测到没有项目并退出循环时.