我有以下代码:

if (ListOfMyModel.Any(a => a.SomeID != 0 &&
       IsAuthorizedOnID(TheUserID, a.SomeID) == false) == false)
{
    return true;
}


基本上,我有一个对象列表,并用一个传递给lambda表达式的foreach替换了.Any()循环。

仅在以下情况下,此代码才应返回true:a)在第二个函数中授权了SomeID不等于0的所有对象,而不必担心对SomeID等于0的对象的授权。

我的表达是正确的还是在某些情况下可能失败?

谢谢。

最佳答案

而不是添加所有的否定,您应该使用与描述中相同的代码编写代码:


  如果每个用户的ID为零或已被授权。


return list.All(a => a.SomeId == 0 || IsAuthorizedOnID(TheUserID, a.SomeID));

关于c# - 如果lambda中的条件相结合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20749247/

10-13 03:32