【发布时间】:2021-11-06 18:18:51
【问题描述】:
我试图弄清楚 ANY 和 ALL 在 Linq 中是如何工作的。
假设我的列表中有 10 万条记录。哪一个应该执行得更快?
if(recordsList.All(r => r.Deleted) == true) { }
或
if(recordsList.Any(r => r.Deleted == false) == false) { }
我认为如果列表中的第一条记录被删除,ANY 应该执行得更快,它应该停止并返回 true,而不是使用总是检查整个列表的 ALL...对吗?
【问题讨论】:
-
@HimBromBeere 试过了,但我都得到了
-
它们都将在第一个匹配/不匹配的项目上停止(
.All将在第一个不匹配的项目上停止,.Any将在第一个匹配的项目上停止) -
不应该是第二个只是
Any(r => !r.Deleted)? -
我投票结束这个问题,因为它是关于测量时差。
标签: c# performance linq