c# - Linq 是更快、更慢还是一样?

标签 c# linq performance

这是:

Box boxToFind = AllBoxes.FirstOrDefault(box => box.BoxNumber == boxToMatchTo.BagNumber);

比这更快或更慢:

Box boxToFind ;
foreach (Box box in AllBoxes)
{
    if (box.BoxNumber == boxToMatchTo.BoxNumber)
    {
        boxToFind = box;
    }
}

两者都给出了我正在寻找的结果 (boxToFind)。这将在我需要注意性能的移动设备上运行。

最佳答案

应该差不多,只是需要调用First (或者,为了匹配您的代码, Last ),而不是 Where .
打电话Where将为您提供一组匹配项(IEnumerable<Box>);您只需要一件匹配的商品。

一般来说,在使用LINQ时,需要注意延迟执行。在您的特定情况下,这无关紧要,因为您得到的是一个项目。

关于c# - Linq 是更快、更慢还是一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884173/

相关文章:

c# - 为什么我的 C# 代码中出现 "The name Regex does not exist in the current context"?

c# - 如何使用 Linq 从 jArray 访问元素

.net - 遍历集合并确保每个项目的顺序正确的 Linq 语句?

php - URL 缩短器算法

Python - 如何提高复杂递归函数的效率?

c# - 使用 FileSystemWatcher 观察 log4net 日志文件

c# - 如何在.NET中制造一个空字符串?

c# - 将 Linq 表达式转换为具有给定属性值的字符串

c - 在 C 语言中,使用全局变量对堆栈有帮助吗?

c# - JWT 有什么安全保障?