我有一个包含 5000 多个项目的通用集合。所有项目都是独一无二的,所以我使用 SingleOrDefault 从集合中提取一个项目。今天我使用 Red Gate ANTS 分析器查看代码,发现我的 SingleOrDefault 调用在 5000 次迭代中(~3.5 秒)有 1800 万次命中,而当我将其更改为 FirstOrDefault 时,它有 900 万次命中(~1.5 秒)。
我使用 SingleOrDefault 因为我知道集合中的所有项目都是独一无二的。
编辑:问题将是为什么 FirstOrDefault 比 SingleOrDefault 快,即使这是我们应该使用 SingleOrDefault 的确切场景。