这是:
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/