我需要知道满足条件的元素数量,因此我执行以下操作:
int numberOfItems = context.SomeEntity.Count(someCondition);
但由于我只需要检查 numberOfItems 是否且仅当 numberOfItems 恰好为 1,我想改进此查询并通过在前两次出现满足条件时停止计数项目来提高效率(当遇到前两次出现满足条件时)条件,无需继续检查)。执行类似:
bool existsOnlyOne = context.SomeEntity....
如何实现这一目标?
最佳答案
您可以将条件更改为
bool existsOnlyOne = context.SomeEntity.Where(someCondition).Take(2).Count() == 1;
如果您有两个以上的项目,那么
Take(2)
方法将忽略从第三个开始的项目。关于performance - 如何使用 LINQ 获得前两次出现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16881929/