哪里不能在LINQ操作

时间:2009-12-09 15:23:50

标签: c# asp.net

我有一个问题,当我运行下面的内容时,即使对OptionsMatch的调用返回false(该方法返回一个bool)我仍然在结果列表中得到项目finalItems

public List<SavedItemOption> GetValidOrderOptions(OptionsList itemOptions, List<SavedItemOption> savedItemOptions)
{
    List<SavedItemOption> finalItemOptions = savedItemOptions.Where(y => itemOptions.Any(x => OptionsMatch(x,y) && (y.actID == x.Id))).ToList();

    return finalItems;
}

1 个答案:

答案 0 :(得分:4)

是的,您可能会 - 因为您正在使用itemOptions.Any。因此,如果itemOptions中有任何 x,OptionsMatch(x, y)y.ActID == x.ID那么y将在返回的列表中。

不知道savedItemOptionsitemOptions是什么,或者OptionsMatch确实是什么,我们无法确切知道发生了什么 - 但我的猜测是你要么不想要要致电Any,或者想要致电Any,但这会使您在调试时感到困惑。