有人能向我解释这个lambda表达吗?这让我发疯了

wei*_*wei 6 .net c# lambda

以下代码是授权的一部分.我试图精神成像它实际上做了什么,但不能以某种方式.

IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));
Run Code Online (Sandbox Code Playgroud)

有人能向我解释这个lambda表达吗?

谢谢!

编辑:

IsAuthorized是委托类型.编写此代码的前一个程序员似乎希望通过将委托放在cs文件的末尾来保密.

实际代码是:

public delegate bool IsAuthorized(IEnumerable<Int32> required, IEnumerable<Int32> has);
IsAuthorized = ((x, y) => x.Any(z => y.Contains(z)));
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 15

当然 - 它说给定一对(x, y),确实x包含任何y包含该值的值.

在我看来,它真的在说" x和之间是否有任何交集y".

所以另一种选择可能是:

IsAuthorized = (x, y) => x.Intersect(y).Any();
Run Code Online (Sandbox Code Playgroud)

根据类型的不同,这可能不会起作用IsAuthorized,但我希望它是正确的.