这是:
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
将为您提供一组匹配项(anIEnumerable<Box>
);您只需要一个匹配项。
一般来说,在使用linq时,需要注意延迟执行。在你的特殊情况下,这是无关紧要的,因为你只得到一件东西。