以下代码是授权的一部分。我正在尝试从心理上想象它的实际作用,但无法以某种方式。

IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));

谁能向我解释这个lambda表达式?

谢谢!

编辑:

IsAuthorized是委托(delegate)类型。以前编写此代码的程序员似乎希望通过将委托(delegate)放置到cs文件的末尾来保密。

实际的代码是:
public delegate bool IsAuthorized(IEnumerable<Int32> required, IEnumerable<Int32> has);
IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));

最佳答案

当然-就是说给定一对(x, y)x是否包含任何值,使得y包含该值。

在我看来,这确实是在说“xy之间是否有任何交集”。

因此,替代方案可能是:

IsAuthorized = (x, y) => x.Intersect(y).Any();

根据IsAuthorized的类型,这很可能行不通,但我希望它是正确的。

09-11 05:17