我有以下代码:
if (ListOfMyModel.Any(a => a.SomeID != 0 &&
IsAuthorizedOnID(TheUserID, a.SomeID) == false) == false)
{
return true;
}
基本上,我有一个对象列表,我用foreach
替换了一个.Any()
循环,我正在传递一个lambda表达式。
只有当a)所有具有SomeID不等于0的对象在第二个函数中被授权但不担心SomeID等于0的对象的授权时,此代码才应返回true。
我的表情是正确的还是有可能失败的情况?
感谢。
答案 0 :(得分:4)
不应该添加所有这些否定,而应该在代码中写下您在描述中写的内容:
如果每个用户的ID为零或已获得授权。
return list.All(a => a.SomeId == 0 || IsAuthorizedOnID(TheUserID, a.SomeID));
答案 1 :(得分:0)
尝试:
if (!ListOfMyModel.Any(a => a.SomeID != 0 && !IsAuthorizedOnID(TheUserID, a.SomeID))
或
return ListOfMyModel.All(a => a.SomeId == 0 || IsAuthorizedOnID(TheUserID, a.SomeID));