这是:

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时,需要注意延迟执行。在你的特殊情况下,这是无关紧要的,因为你只得到一件东西。

08-05 02:37